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 负载平衡器?