在Ubuntu上部署Node.js集群可通过内置cluster模块或PM2实现。cluster模块零依赖,主进程派生子进程共享端口,适合简单场景。PM2提供进程守护、负载均衡、日志管理、自动重启等运维功能,更适合生产环境,可确保高可用性。
在Ubuntu上搭建Node.js集群,有多种方案可供选择,核心目标始终是充分利用多核CPU性能,并保证服务高可用。以下介绍两种主流做法:直接使用Node.js内置的cluster模块,或借助PM2进程管理工具。

长期稳定更新的攒劲资源: >>>点此立即查看<<<
这是最原生的方式,无需额外安装依赖。核心思路是主进程(Master)派生子进程(Worker),每个Worker共享同一端口,由操作系统负责负载均衡。
准备一个简单的应用。假设根目录下app.js内容如下:
// app.js
const http = require('http');
const cluster = require('cluster');
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(8000);
console.log(`Worker ${process.pid} started`);
}
运行方式简单,直接执行:
node app.js
应用会在每个CPU核心上启动一个Worker进程,共同处理请求。
PM2是Node.js生态中最流行的进程管理工具,能将集群部署简化到一条命令。它内置负载均衡、进程守护、日志管理等功能,适合生产环境。
安装PM2(全局安装):
npm install pm2 -g启动应用时,使用-i参数指定Worker数量。例如,充分利用CPU核心:
pm2 start app.js -i max
-i max会自动根据CPU核心数启动相应数量的Worker。也可手动指定数量,如-i 4。
日常管理便捷。查看运行状态:
pm2 status停止应用:
pm2 stop app重启应用:
pm2 restart app查看日志:
pm2 logs app两种方法各有优劣。内置cluster模块零依赖,适合对底层控制有较高要求的场景;PM2则提供更完整的运维体验,包括进程守护、自动重启、零停机更新等。根据实际需求选择即可,没有绝对的好坏之分。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述