我应该在 nginx、pm2 还是两者中进行负载平衡?

我应该在 nginx、pm2 还是两者中进行负载平衡?

PM2 允许在多个实例(即不同的核心)上运行 NodeJS 应用程序,从而允许使用相同的端口进行负载平衡。

PORT=3000 pm2 start -i NUMBER_OF_CORES(e.g 2) app.js

但是我也可以使用不同的端口在 Nginx 中进行负载平衡

upstream app_servers {
    server 127.0.0.1:3000;
    server 127.0.0.1:3001;
    server 127.0.0.1:3002;
    server 127.0.0.1:3002;
}

server {
    listen 80;
    server_name your-domain.com www.your-domain.com;
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://app_servers;
    }
}

进而

pm2 start app.js -f --3000
pm2 start app.js -f --3001
pm2 start app.js -f --3002
pm2 start app.js -f --3003

哪个是最好的主意(我总是假设本地主机提供所有服务)?

  • 只需在不同的实例(核心)上对同一端口进行负载平衡即可
  • 只需在不同的端口上进行负载平衡,并让操作系统管理实例,或者
  • 通过使用不同的实例(每个实例具有不同的端口)来实现负载平衡,从而同时使用 Nginx 和 PM2 负载平衡器?

相关内容