在 CentOS 上实现 Node.js 应用的集群部署,可以充分利用多核 CPU 的性能,提高应用的并发处理能力。以下是使用 PM2 进行集群部署的详细步骤:
1. 安装 Node.js
首先,确保你的 CentOS 系统上已经安装了 Node.js。如果尚未安装,可以通过以下方法之一进行安装:
使用 NodeSource 仓库安装最新版本的 Node.js:
# 导入 NodeSource 仓库的 GPG 密钥
curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -
# 安装 Node.js
sudo yum install -y nodejs
注意:将 setup_16.x 替换为你需要的 Node.js 版本,例如 setup_18.x。
验证安装:
node -v
npm -v
2. 安装 PM2
PM2 是一个功能强大的 Node.js 进程管理器,支持集群模式。
sudo npm install pm2 -g
3. 配置集群
假设你有一个名为 app.js 的 Node.js 应用程序,你可以使用以下命令启动一个集群:
pm2 start app.js -i max
参数说明:
-i max:根据 CPU 核心数自动启动相应数量的实例。你也可以指定具体的数字,例如-i 4表示启动 4 个实例。
4. 查看集群状态
使用以下命令查看当前运行的进程和集群状态:
pm2 status
5. 管理集群
-
停止所有实例:
pm2 stop app -
重启所有实例:
pm2 restart app -
删除集群:
pm2 delete app
6. 配置 PM2 启动脚本
为了让 PM2 在系统启动时自动运行你的 Node.js 应用,可以生成一个启动脚本:
pm2 startup
根据提示执行生成的命令,通常类似于:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u your_username --hp /home/your_username
然后保存当前的 PM2 进程列表:
pm2 save
7. 配置负载均衡
PM2 默认使用内置的负载均衡机制,将请求均匀分配到各个实例。如果你需要自定义负载均衡策略,可以在 ecosystem.config.js 文件中进行配置。
示例 ecosystem.config.js:
module.exports = {
apps: [
{
name: 'my-app',
script: 'app.js',
instances: 'max', // 或指定具体数量
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
8. 监控和日志管理
PM2 提供了丰富的监控和日志管理功能:
-
查看实时日志:
pm2 logs app -
查看日志文件:
pm2 logs app --lines 1000 -
监控资源使用情况:
pm2 monit
9. 其他集群管理工具
除了 PM2,你还可以考虑使用其他工具进行 Node.js 集群部署,例如:
- Forever: 一个简单的进程管理器。
- Cluster 模块: Node.js 内置的模块,适合简单的集群需求。
- Docker: 使用 Docker 容器化应用,并通过 Docker Compose 或 Kubernetes 进行集群管理。
总结
使用 PM2 在 CentOS 上实现 Node.js 集群部署简单高效,具备自动重启、负载均衡、日志管理等功能,非常适合生产环境使用。根据具体需求选择合适的工具和方法,可以显著提升应用的性能和稳定性。
以上就是关于“CentOS Node.js 怎样实现集群部署”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm