在CentOS系统中搭建Node.js集群可以通过多种方式实现,其中一种常见的方法是使用PM2(Process Manager 2)。PM2是一个功能强大的Node.js进程管理器,支持集群模式,可以轻松地管理和扩展Node.js应用。以下是使用PM2在CentOS上搭建Node.js集群的步骤:
首先,确保你的CentOS系统上已经安装了Node.js。如果没有安装,可以使用以下命令进行安装:
# 使用NodeSource仓库安装Node.js
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum install -y nodejs
接下来,安装PM2:
sudo npm install pm2 -g
假设你已经有一个Node.js应用,或者你可以创建一个简单的示例应用。例如,创建一个名为app.js
的文件,内容如下:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
});
const port = process.argv[2] || 3000;
server.listen(port, () => {
console.log(`Server running on port ${port}`);
});
使用PM2启动Node.js应用,并指定多个实例以实现集群模式。例如,启动4个实例:
pm2 start app.js -i 4
-i 4
参数表示启动4个实例。PM2会自动在多个CPU核心上分配这些实例。
你可以使用以下命令查看集群的状态:
pm2 status
PM2提供了丰富的命令来监控和管理集群。例如:
查看日志:
pm2 logs
停止某个实例:
pm2 stop app:0 # 停止第一个实例
重启某个实例:
pm2 restart app:0 # 重启第一个实例
删除某个实例:
pm2 delete app:0 # 删除第一个实例
你可以创建一个PM2配置文件(例如ecosystem.config.js
)来管理集群和其他配置:
module.exports = {
apps: [
{
name: 'my-app',
script: 'app.js',
instances: 4,
exec_mode: 'cluster',
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}
]
};
然后使用以下命令启动应用:
pm2 start ecosystem.config.js --env production
通过以上步骤,你可以在CentOS系统中成功搭建一个Node.js集群,并使用PM2进行管理和监控。