目标:

在不同的文档根目录下使用彼此独立的多台实时node.js服务器。

使用NGINX

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/www/html/lolwut1/app.js

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/www/html/lolwut2/app.js

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中的/var/www/html/lolwut1/app.js并按lolwut1.com我都很好。

问题:


但是现在如果我要启动第二个节点服务器该怎么办?
这是不好的方法吗?...我在想这是错误的方法吗?
What are the advantages/disadvantages of using node.js with a connect.vhost directive as a router rather than NGINX?

最佳答案

使用forever启动和停止您的节点应用程序。
您做对了!这种方法对我来说已经很长一段时间了。
Connect vhost的优势:您无需安装和配置nginx。整个堆栈是node.js。

Nginx的优势:Nginx是成熟且稳定的Web服务器。崩溃或表现出奇怪行为的可能性很小。它还可以托管您的静态站点,PHP站点等。

如果是我,除非我需要Nginx的某些特定功能,否则我会选择Connect vhost或node-http-proxy来拥有all-node.js堆栈。

关于node.js - 使用NGINX代理的Muitliple Node.js服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14993833/

10-16 10:49
查看更多