我在具有两个 CPU 内核的机器上使用 PM2 对 Node.js (10.32) 简单脚本进行负载平衡时遇到问题。
脚本如下:
var http = require('http');
var server = http.createServer(function (req, res) {
res.writeHead(200, {"Content-Type": "text/plain"});
res.end("Hello World\n");
});
server.listen(81);
如果我运行pm2 start -i max script.js
,两个子进程似乎成功启动(根据pm2 list
),但请求http://localhost:81
挂起。
如果我运行pm2 start -i max -x script.js
,第一个子进程会成功启动,但第二个子进程会永远重启(出现 EADDRINUSE 错误)。
我检查过lsof
,在运行 PM2 之前没有使用端口 81。