概述
问题:我们在群集模式下启动pm2,并且pm2启动的进程数量与cpu核心一样多,pm2也尝试启动与cpu核心一样多的节点服务器,但问题是它无法启动尽可能多的服务器,因为它们所有尝试并在3000的同一端口上启动,该端口已被第一个节点服务器占用
我们使用nginx并代理它到3000端口.
我们在集群模式下使用pm2,配置如下:
{
"apps" : [{
"script" : "npm",
"instances" : "max",
"cwd":"/home/nginx/my-pwa" ,
"args" : "run start:server:prod",
"exec_mode" : "cluster",
"wait_ready": true,
"kill_timeout" : 4000,
"watch" : true
}]
}
run start:server:prod是我们启动服务器的脚本
我们的快递服务器
var app = require('../src/app');
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
const http = require('http');
server = http.createServer(app);
server.listen(port));
server.on('error', onError);
server.on('listening', onListening);
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
process.on('message', function(msg) {
if (msg == 'shutdown') {
server.close();
process.exit(0);
}
});
// Listening logic
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
console.log("Server started on ", bind);
process.send('ready');
}
请帮忙,这是关键任务!
最后
以上就是缓慢日记本为你收集整理的pm2集群模式mysql配置_node.js – 使用pm2集群模式表达服务器端口配置问题的全部内容,希望文章能够帮你解决pm2集群模式mysql配置_node.js – 使用pm2集群模式表达服务器端口配置问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复