Nodejs多个服务器或一个用于多个网站

时间:2014-04-30 22:53:15

标签: node.js nginx

在我的公司,我们决定使用nodejs来完成未来的项目。

为了记录,我们可能在同一台服务器上有50到100个网站。 它将是一个小型网站,整个服务器同时最多可达1000个访问者。我们已经在我们的第一台服务器上运行了大约100个运行PHP + Apache的网站。

我的问题很简单,最好的方法是什么?

多个nodejs服务器:

var http = require('http');
var server = http.createServer(function (rq, rs) {...}); server.listen(3001);
var server = http.createServer(function (rq, rs) {...}); server.listen(3002);
...
var server = http.createServer(function (rq, rs) {...}); server.listen(3999);

或只是一台服务器:

var http = require('http');
var server = http.createServer(function (rq, rs) {...});
server.listen(3001);

Nginx将用于反向代理。

2 个答案:

答案 0 :(得分:0)

您应该创建在多个节点进程下运行的多个节点服务器。如果将它们全部设置在同一节点进程中,则一个http服务器代码中的崩溃也会导致所有其他http服务器崩溃。

答案 1 :(得分:0)

100个动态网站,每个网站都有自己独特的业务逻辑?如果答案是否定的,则可能需要1个api服务器(取决于负载和可靠性要求 - 多个进程/ node.js集群/ nginx / elb平衡器)+ nginx服务的100个静态站点(可能是一个nginx服务器用于您的负载)

如果它实际上是100个完全不相关的站点,我的建议是在一个端口上监听一个服务器(但是多个进程,至少x个核心)。 100个节点进程增加了太多的内存开销(约1-2 gb)。