前言
随着业务的增长以及访问量的上升,我们需要将服务部署在多台宿主机上,以提高可用性和性能。常见的技术方案有负载均衡、容器化和微服务等,而在这些方案中,PM2 前端进程管理工具是一个很好的选择。它可以帮助我们轻松管理 Node.js 的进程以及在多台宿主机上运行 Node.js 服务。本文将介绍如何使用 PM2 实现多宿主机部署。
步骤
1. 安装 PM2
执行以下命令安装 PM2:
npm install pm2 -g
安装完成后,可以在命令行中执行下面的命令测试是否安装成功:
pm2
如果输出了 PM2 的帮助信息,则说明 PM2 安装成功。
2. 配置 SSH
将需要部署的宿主机的公钥添加到本机的 authorized_keys
文件中,以实现在本机远程执行宿主机上的 PM2 命令。假设需要部署的宿主机 IP 地址为 192.168.1.100
,公钥文件为 id_rsa.pub
,则可以执行以下命令:
cat ~/.ssh/id_rsa.pub | ssh <username>@192.168.1.100 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
其中,<username>
是宿主机的用户名。
3. 配置 PM2
在需要部署的项目根目录下创建一个名为 ecosystem.config.js
的文件,并添加以下配置:
-- -------------------- ---- ------- -------------- - - ----- - - ----- ------ ------- --------- ---------- ------ ---------- ---------- ---- - --------- ------------ - - -- ------- - ----------- - ----- ------------- ----- - ---------- --------- -- ---- ---------------- ----- --------------- ----- --------- -------------- ---- ------- -- --- ------ ------------------- ----- ----------- - - -
其中,name
是应用的名称,script
是应用的入口文件,instances
和 exec_mode
是在多个宿主机上运行 Node.js 应用程序的配置,env
是配置的环境变量,user
是宿主机的用户名,host
是需要部署的宿主机地址,ref
是 git 仓库中要拉取的分支,默认为 origin/master
,repo
是 git 仓库的地址,path
是应用程序的部署路径,post-deploy
是在部署完成后需要执行的脚本。
需要注意的是,在 deploy.production.host
数组中添加需要部署的宿主机地址,PM2 将会在部署时自动在这些宿主机上部署应用程序。
4. 部署应用
执行以下命令部署应用程序:
pm2 deploy production setup pm2 deploy production
以上命令将会在配置的宿主机上部署应用程序,并在 path
目录下创建一个名为 shared
的目录,其中包含了日志、进程号和应用程序的配置文件等信息。
5. 重启应用
如果需要重启应用,可以执行以下命令:
pm2 deploy production reload
总结
通过以上步骤,可以使用 PM2 在多个宿主机上部署 Node.js 应用程序。PM2 提供了一个简单而强大的方法来管理 Node.js 进程,并且能够管理多台宿主机上的进程。这在提高应用程序的可用性和性能方面非常有用。
示例代码:https://github.com/pd4d10/pm2-multi-host-deploy
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ce3777b5eee0b52561f39c