掌握生产环境中的 Node.js 与 PM2 | 原创,AI翻译

Home PDF

如果你曾经构建过一个 Node.js 应用程序,并且想知道如何在生产环境中让它平稳运行,你可能会遇到 PM2。如果没有,让我介绍一下这个改变游戏规则的工具。PM2,即 Process Manager 2,是一个开源工具,旨在使在生产环境中管理 Node.js 应用程序变得轻而易举——配备内置负载均衡器、监控功能和零停机部署。让我们深入了解 PM2 的优点以及为什么它可能会成为你的首选工具。

什么是 PM2?

PM2 的核心是一个 Node.js 应用程序的进程管理器。可以把它看作是一个守护者,它保持你的应用程序运行,如果崩溃了会自动重启,并帮助你轻松扩展。最初由 Unitech 创建,现在由一个活跃的开源社区维护,PM2 以超过 45k 个 GitHub 星标(截至 2025 年初)和可靠性的声誉赢得了认可。

与在终端中运行 node app.js 并祈祷不同,PM2 控制了你的应用程序的生命周期。它就像给你的 Node.js 应用程序配备了一个个人助理,处理那些无聊的事情——这样你就可以专注于编码。

PM2 为什么出众

Node.js 本质上是单线程的,这对于轻量级、非阻塞 I/O 操作非常好,但在高流量下可能会成为瓶颈。PM2 通过一些强大的功能解决了这个问题:

  1. 简化进程管理 使用单个命令如 pm2 start app.js,你的应用程序就会作为一个管理进程运行。如果它崩溃了(嘿,这会发生),PM2 会自动重启它。你可以使用简单的命令如 pm2 stop apppm2 delete app 来停止、重启或删除进程。无需照顾。

  2. 内置负载均衡 这就是 PM2 发挥作用的地方。使用其集群模式(pm2 start app.js -i max),PM2 会在你的 CPU 核心上启动多个应用程序实例。然后它会在它们之间负载均衡传入的请求。无需单独的工具如 Nginx 来分发流量——PM2 直接处理。

  3. 零停机重新加载 你是否曾经因为更新会将用户踢出应用程序而害怕部署?PM2 通过 pm2 reload app 解决了这个问题。它逐个重启你的应用程序进程,确保用户没有中断。顺滑如黄油。

  4. 监控和日志 运行 pm2 monit 会给你一个实时仪表盘,显示 CPU 使用情况、内存消耗和重启次数。需要查看错误?pm2 logs 会将你的应用程序日志直接流式传输到你的终端。就像为你的应用程序配备了一个控制塔。

  5. 启动脚本 你想让 PM2 在服务器重启后自动启动吗?只需运行 pm2 startup,它会生成一个脚本在启动时重新启动你的应用程序。几分钟内就可以投入生产。

使用 PM2 入门

准备好试试吗?设置非常简单:

  1. 全局安装 PM2 打开终端并运行:
    npm install pm2 -g
    

    这会全局安装 PM2,这样你就可以在任何地方使用它。

  2. 启动你的应用程序 导航到你的项目文件夹并运行:
    pm2 start app.js
    

    你的应用程序现在由 PM2 管理。想使用集群模式?试试:

    pm2 start app.js -i max
    

    max 标志告诉 PM2 使用所有可用的 CPU 核心。

  3. 检查状态 运行 pm2 list 以查看所有正在运行的进程、它们的状态和资源使用情况。

  4. 探索生态系统 PM2 不仅仅是一个单一功能的工具。它支持配置文件(例如 ecosystem.config.js)用于更复杂的设置,与 Keymetrics 集成以进行高级监控,甚至可以与非 Node.js 应用程序一起使用,如果你想冒险的话。

适用对象

PM2 适用于任何在生产环境中运行 Node.js 的人——无论你是独自开发者部署一个副项目,还是团队成员管理一个高流量 API。它轻量级、直观,不会让你陷入复杂的设置步骤。小型初创公司和大型企业都发誓使用它。

一些专业技巧

最后的想法

PM2 是那种一旦开始使用,你就会想知道自己以前是如何没有它的工具。它将管理 Node.js 进程的混乱转变为流畅、无压力的体验。无论你是扩展微服务、保持 Web 应用程序运行,还是只是在玩一个爱好项目,PM2 都会支持你。

所以,前往 PM2 的 GitHub 页面,给它一个星标,并试试。你的 Node.js 应用程序会感谢你——你的理智也会。


Back 2025.04.02 Donate