什么是 pm2?
pm2 是一个 Node.js 进程管理器,可以用来管理和部署 Node.js 应用程序。pm2 提供了一个命令行工具,可以方便地启动、停止、重启、监视、打印日志和监控 Node.js 进程。pm2 还支持负载均衡、自动重启和故障恢复等功能,可以实现高可用性和可靠性。
如何安装 pm2?
要使用 pm2,首先需要安装 pm2:
npm install pm2 -g
如何使用 pm2?
使用 pm2 很简单,只需要在命令行中输入 pm2 命令就可以了。以下是一些常用的 pm2 命令:
启动一个应用程序:
pm2 start app.js
停止一个应用程序:
pm2 stop app
重启一个应用程序:
pm2 restart app
监视一个应用程序的日志:
pm2 logs app
监视所有应用程序的状态:
pm2 status
打印给定应用程序的环境变量:
pm2 env app
杀死所有应用程序:
pm2 kill
如何部署 Node.js 应用程序?
使用 pm2 部署 Node.js 应用程序很简单,只需要遵循以下步骤:
在本地开发环境中测试应用程序,确保它能够正常运行。
将应用程序上传到服务器上的一个目录,例如 /var/www/myapp。
在服务器上安装 pm2:
npm install pm2 -g
在服务器上启动应用程序:
cd /var/www/myapp pm2 start app.js
配置反向代理,以将外部请求转发到应用程序:
-- -------------------- ---- ------- ------ - ------ --- ----------- ------------ -------- - - ---------- ---------------------- ---------------- ---- ------ ---------------- --------- ------------- ---------------- --------------- --------------------------- - -
重新加载 Nginx 配置:
systemctl reload nginx
完成以上步骤后,应用程序就可以通过反向代理访问了。当应用程序发生故障时,pm2 会自动重启并恢复它,确保应用程序的可用性和可靠性。
pm2 的负载均衡和自动重启
pm2 支持负载均衡和自动重启,以提高应用程序的可用性和可靠性。以下是如何配置 pm2 的负载均衡和自动重启:
在应用程序代码中添加以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- -- ------------------ - --- ------- - ---------------------------- --- ---- - - -- - - -------- ---- - --------------- - ------------------ -------- ----- ------- -- - ------------------- --------------------- ------- --------------- --- - ---- - -- ---- ----------- ---- -
在 pm2 配置文件中添加以下代码:
-- -------------------- ---- ------- - ------- -------- --------- --------- ------------ ------ ------------ ---------- -------- ----- ------ - ----------- ------------ - -
完成以上步骤后,pm2 将使用所有可用的 CPU 内核启动多个 Node.js 进程实例,从而实现负载均衡和自动重启。
案例分析:使用 pm2 部署和管理 Express 应用程序
以下是如何使用 pm2 部署和管理 Express 应用程序的步骤和示例代码:
创建一个 Express 应用程序:
const express = require('express'); const app = express(); app.get('/', (req, res) => res.send('Hello World!')); app.listen(3000, () => console.log('Example app listening on port 3000!'));
保存并上传应用程序到服务器上的一个目录,例如 /var/www/myapp。
在服务器上安装 pm2:
npm install pm2 -g
在服务器上启动应用程序:
cd /var/www/myapp pm2 start app.js
配置 Nginx 反向代理,以将外部请求转发到应用程序:
-- -------------------- ---- ------- ------ - ------ --- ----------- ------------ -------- - - ---------- ---------------------- ---------------- ---- ------ ---------------- --------- ------------- ---------------- --------------- --------------------------- - -
重新加载 Nginx 配置:
systemctl reload nginx
现在可以通过浏览器访问应用程序了,例如 http://example.com。如果应用程序发生故障,pm2 将自动重启并恢复它,确保应用程序的可用性和可靠性。
总结
使用 pm2 可以方便地进行 Node.js 进程管理和部署,实现高可用性和可靠性。通过学习本文中的技巧和经验,您可以更好地管理和部署 Node.js 应用程序,提高开发效率和用户体验。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c5344ed20074f47a45d4ad