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

方法一:使用Node.js内置cluster模块
这是最原生的方式,无需额外安装依赖。核心思路是主进程(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一键部署集群
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则提供更完整的运维体验,包括进程守护、自动重启、零停机更新等。根据实际需求选择即可,没有绝对的好坏之分。
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。
相关文章