在不同的doc根目录下使用muitiple live node.js服务器彼此独立。
server {
server_name .lolwut1.com;
root /var/www/html/lolwut1;
# proxy pass to nodejs
location / {
proxy_pass http://127.0.0.1:5001/;
}
}
server {
server_name .lolwut2.com;
root /var/www/html/lolwut2;
# proxy pass to nodejs
location / {
proxy_pass http://127.0.0.1:5002/;
}
}
var http = require('http');
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("lolwut1\n");
});
server.listen(5001);
var http = require('http');
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("lolwut2\n");
});
server.listen(5002);
node app.js
中的{p> /var/www/html/lolwut1/app.js
并点击lolwut1.com
我一切都很好。
connect.vhost
directive as a router rather than NGINX? 答案 0 :(得分:3)
Connect vhost Advantage:您无需安装和配置nginx。整个堆栈是node.js。
Nginx优势: Nginx是一款成熟稳定的网络服务器。它不太可能崩溃或表现出奇怪的行为。它还可以托管您的静态站点,PHP站点等。
如果是我,除非我需要Nginx的某些特定功能,否则为了拥有all-node.js堆栈,我会选择Connect vhost或node-http-proxy。
答案 1 :(得分:1)
但现在如果我想启动第二个节点服务器呢?这是一个糟糕的方法吗?...
当您转到/var/www/html/lolwut2/
并运行node app.js
时,这应该在端口5002上启动第二个服务器,并且lolwut2.com应该可以工作。
我是否以错误的方式思考这个问题?
如果你有足够的内存和足够的CPU功率,这是在同一台服务器上运行多个节点应用程序的有效方法。这也是在同一台机器上扩展单个节点应用程序以通过运行多个节点并使用upstream
指令(如此处https://serverfault.com/questions/179247/can-nginx-round-robin-to-a-server-list-on-different-ports)来利用多个核心的好方法