使用NGINX负载均衡请求stream量与多节点服务器

根据这个答案

您应该在一个框中运行多个节点服务器,每个核心运行一个节点服务器,并在它们之间拆分请求stream量 这提供了极好的CPU亲和力,并且将随着核心数量几乎线性地扩展吞吐量。

明白了,让我们说我们的箱子有2个简单的核心。

我需要一个完整的例子,一个使用NGINX在两个节点服务器之间进行负载平衡的Hello World应用程序。

这应该包括任何NGINXconfiguration。

app.js

 var http = require('http'); var port = parseInt(process.argv[2]); http.createserver(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(port); console.log('server running at http://localhost:' + port + '/'); 

nginx配置

 upstream app { server localhost:8001; server localhost:8002; } server { location / { proxy_pass http://app; } } 

启动你的应用程序

 node app.js 8001 node app.js 8002 

HttpUpstreammodulee文档

额外的阅读材料

  • 集群模块 – 仍然是实验性的,但是你不需要nginx
  • 永远的模块 – 万一你的应用程序崩溃
  • nginx和websockets – 如何在新的nginx版本中代理websockets