您的位置:首页 >Ubuntu下Node.js如何实现集群部署
发布于2026-05-01 阅读(0)
扫一扫,手机访问
想让你的Node.js应用在Ubuntu系统上跑得更稳、更能扛?集群部署是个绕不开的话题。别担心,实现路径不止一条,关键是要找到最适合你当前场景的那一条。下面就来聊聊几种主流且实用的方法。

cluster模块首先得提Node.js自带的“法宝”——cluster模块。它允许你轻松创建多个工作进程,共享同一个端口,天然就为负载均衡和高可用性打下了基础。这种方式直接、纯粹,不依赖外部工具。
安装Node.js:这是前提。如果你的系统还没安装,打开终端,两条命令就能搞定:
sudo apt update
sudo apt install nodejs npm
创建一个简单的Node.js应用:我们来写一个核心示例文件,比如就叫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`);
// 根据CPU核心数创建对应数量的工作进程
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
// 监听工作进程退出事件,便于重启
cluster.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
});
} else {
// 工作进程负责创建实际的HTTP服务
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
console.log(`Worker ${process.pid} started`);
}
运行应用:代码保存后,在终端里启动它:
node app.js
你会看到主进程和各个工作进程的启动日志,一个基础的集群就已经跑起来了。
如果你觉得手动管理进程有点繁琐,那么PM2绝对是你的得力助手。它不仅仅是一个进程管理器,更提供了监控、日志、零停机重启等一整套生产级功能,让集群部署变得异常简单。
安装PM2:通过npm全局安装它:
sudo npm install pm2 -g
启动应用:使用PM2启动应用并直接开启集群模式,-i max参数会让PM2根据你机器的CPU核心数自动创建相应数量的进程实例:
pm2 start app.js -i max
查看应用状态:想了解所有应用实例的运行状况?一条命令一目了然:
pm2 status
监控应用:实时查看日志输出,对于排查问题至关重要:
pm2 logs
当你的目标不仅仅是进程集群,而是希望整个应用环境(包括运行时、依赖)都能标准化、隔离化部署时,Docker容器化方案就闪亮登场了。它为实现更复杂的编排和扩展铺平了道路。
创建Dockerfile:首先,需要在项目根目录创建一个名为Dockerfile的文件,定义构建镜像的步骤:
FROM node:14
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8000
CMD ["node", "app.js"]
构建Docker镜像:在Dockerfile所在目录执行构建命令,-t用于给镜像打上标签:
docker build -t my-node-app .
运行Docker容器:镜像构建成功后,就可以基于它启动多个独立的容器实例,每个实例都运行着你的应用。这里示例了如何启动三个副本,并映射到宿主机的不同端口:
docker run -d -p 8000:8000 --name my-node-app-1 my-node-app
docker run -d -p 8001:8000 --name my-node-app-2 my-node-app
docker run -d -p 8002:8000 --name my-node-app-3 my-node-app
好了,三种主流方法介绍完毕。从利用Node.js原生能力,到借助PM2这样的强大工具简化管理,再到通过Docker实现环境层面的标准化部署,每种方式都有其适用场景。选择哪一种,取决于你对控制粒度、运维复杂度和技术栈的整体规划。无论选择哪条路,目标都是一致的:让你的Node.js应用在Ubuntu上性能更强,可用性更高。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9