阅读量:216
// server.js
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork workers.
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
});
} else {
// Workers can share any TCP connection
// In this case it is an HTTP server
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(3000);
console.log(`Worker ${process.pid} started`);
}
4. 启动Node.js集群
在主节点上启动你的应用:
pm2 start server.js -i max
-i max表示根据CPU核心数启动相应数量的工作进程。
5. 配置PM2开机启动
为了确保你的应用在服务器重启后自动启动,使用以下命令配置PM2开机启动:
pm2 startup
根据提示生成启动脚本,并保存到系统配置文件中。
6. 验证集群
你可以使用curl命令来验证请求是否被正确路由到不同的进程:
curl http://your_server_ip:3000
你应该会看到类似以下的输出,显示请求被路由到不同的进程:
curl: (7) couldn't connect to host
7. 性能优化
为了进一步提升性能,你可以考虑以下优化策略:
参考文章
通过以上步骤,你就可以在CentOS上成功搭建一个高效的Node.js集群。希望这些信息对你有所帮助!