Ubuntu Node.js如何实现集群部署
在Ubuntu操作系统中,Node.js集群部署有两种方式:利用内置cluster模块实现多进程共享端口,充分利用CPU多核优势;或采用PM2进程管理工具,支持集群模式、负载均衡、自动重启等生产环境特性。选择取决于项目规模大小与运维管理需求。
在Ubuntu上做Node.js集群部署,听起来很技术,其实操作起来并不复杂。关键是搞清楚自己到底需要什么:是要最精简的原生方案,还是想要一个顺手的管理工具?下面两种方法正好对应这两种需求,你可以根据自己的实际情况来选。

方法一:用Node.js自带的cluster模块
如果不想额外安装任何东西,Node.js的内核里已经给你备好了一套集群工具。cluster模块的核心思路是:一个主进程负责“招人”,多个工作进程负责“干活”,它们共享同一个端口。这样CPU多核的优势就能被充分利用起来。
先确认Node.js是否就位:
sudo apt update
sudo apt install nodejs npm
然后创建一个应用文件,比如app.js,把下面这段代码放进去:
const cluster = require('cluster');
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(8000);
console.log(`Worker ${process.pid} started`);
}
这段代码的逻辑很直白:主进程判断自己是不是“老大”,如果是,就根据CPU核心数fork出对应数量的工作进程;每个工作进程启动一个HTTP服务监听8000端口。运行起来瞧瞧:
node app.js
你会看到一个主进程带着一堆工作进程跑起来,每个进程都有自己的PID。这是最原汁原味的集群方案,零依赖,但管理上需要自己操心——比如进程挂了要不要自动重启、日志怎么处理,这些都得自己写。
方法二:用PM2实现集群,省心省力
如果你的项目已经上规模,或者你就是想省点事,PM2是个好选择。它不仅仅是进程管理器,还内置了集群模式、负载均衡、日志管理、自动重启等功能,基本上开箱即用。
安装PM2:
sudo npm install pm2 -g
假设你的应用入口还是app.js,启动集群模式只需要一行命令:
pm2 start app.js -i max
-i max的意思是“根据CPU核心数自动启动相应数量的进程”。PM2会自动做好负载均衡,把请求均匀分给每个工作进程。
常用操作也一并列出来:
- 查看状态:
pm2 status - 停止应用:
pm2 stop app - 重启应用:
pm2 restart app - 查看日志:
pm2 logs app
PM2的好处是,你几乎不用修改任何代码,直接拿现有的Node.js应用就能接入集群。它还会帮你处理进程崩溃后的自动重启、性能监控这些琐事。可以说,从开发到生产环境,PM2是很多团队的首选。
怎么选?看场景
两种方法没有绝对的好坏,关键看你的具体需求。
- 如果你在做一个轻量级的内部工具或学习项目,不想引入额外依赖,Node.js内置的cluster模块完全够用,代码透明可控。
- 如果你的应用要上生产环境,或者团队需要统一的运维管理,PM2能帮你省掉大量重复劳动。它提供的集群模式、日志轮转、零停机重启、环境变量管理,都是生产环境必不可少的特性。
最后提醒一句:无论用哪种方式,部署前最好先确认服务器的CPU核心数,以及你的应用是否能够很好地支持多进程(比如共享session或者缓存时要注意状态同步)。集群只是高可用的第一步,完善的监控和容错机制同样重要。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















