在前端开发的过程中,我们经常需要使用到 nodejs,尤其是在服务器端渲染、API 接口开发、爬虫等场景下。而部署 nodejs 项目,则是一个不可避免的问题。有了 PM2,部署 nodejs 变得更加简单,让我们快速上手吧!
什么是 PM2?
PM2 是一个面向生产环境的 Node.js 进程管理器,可以让你轻松地管理和监视 nodejs 应用,支持 0 秒停机重载代码,内存监控、负载均衡等功能。
总的来说,PM2 的功能可以分为如下几个方面:
- 应用程序管理:启动、停止、重启、删除应用程序等
- 进程守护:确保应用程序始终处于运行状态
- 内存监控:感知实时的内存使用情况
- 日志管理:聚合多个应用程序 Log
- 0 秒停机重载代码:避免服务中断
PM2 的安装
在使用 PM2 之前,需要先安装 Node.js 和 npm。安装完成后,可在命令行中进行安装:
npm install pm2 -g
使用 PM2 启动 nodejs 应用
在项目根目录下,使用以下命令启动 nodejs 应用:
pm2 start app.js
其中 app.js 是 nodejs 应用的入口文件。
启动成功后,可以通过以下命令查看应用程序状态:
pm2 list
如果你的应用程序出现了 Bug 或需要更新,你可以使用 demo-name 重启它(demo-name 是你应用的名称):
pm2 restart demo-name
PM2 的进程守护功能
在生产环境中,服务器经常需要不间断地运行 nodejs 应用。要确保服务器不会意外崩溃,需要使用 PM2 的进程守护功能。
启用进程守护的方法很简单,只需在启动应用程序时加上 --watch 参数即可:
pm2 start app.js --watch
PM2 的负载均衡功能
当使用 PM2 启动多个 nodejs 应用时,PM2 可以自动实现负载均衡。通过在启动 node 应用时加上 -i 参数,指定应用的数量:
pm2 start app.js -i 2
在上述示例中,启动 2 个应用程序时,PM2 会自动负载均衡,将请求分配到多个应用程序中。
PM2 的内存监控功能
在生产环境中,内存异常是 nodejs 应用程序最常见的问题。PM2 提供了内存监控功能,可以即时感知内存异常并及时作出处理。
首先需要安装 memory模块:
npm install pm2-memorizer -g
然后,启用内存监控功能:
pm2 start app.js --memory
使用上述示例命令启动的 nodejs 应用程序将启动内存监控功能。
PM2 的日志管理功能
PM2 不仅可以在控制台输出日志,还可以将多个应用程序的日志聚合在一起,存储到磁盘上,达到更好的日志管理和查找的目的。
在 PM2.conf 文件中,可以设置日志管理的详细配置,如下所示:
"error_file": "/var/log/pm2/pm2.log", "out_file": "/var/log/pm2/pm2.out", "pid_file": "/var/log/pm2/pm2.pid"
日志文件可以在 $HOME/.pm2/logs 目录中找到。
PM2 的 0 秒停机升级
在生产环境中进行升级操作时,很容易导致服务中断,影响用户体验。PM2 的 0 秒停机升级功能可以解决这个问题,无需停机即可更新代码。
以下是启用 0 秒停机升级的示例命令:
pm2 start app.js --watch --ignore-watch="public/*" --verbose
在以上示例命令中,使用 --ignore-watch 参数排除 public 目录文件的变更,使用 --watch 参数开启 0 秒停机升级。
总结
PM2 是一个强大的 Node.js 进程管理工具,可以帮助开发人员轻松地部署和管理 nodejs 应用。在生产环境中,PM2 的进程守护、负载均衡、内存监控、日志管理和 0 秒停机升级功能,有助于应用程序的稳定运行。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652e34767d4982a6ebf41818