如何配置 PM2,高效管理多个 Node.js 应用?

前言

Node.js 是一种非常流行的后端开发语言,而 PM2 则是用于 Node.js 应用的进程管理工具,它可以帮助我们快速地启动、停止、重启、监控和管理多个 Node.js 应用。在实际项目开发过程中,我们通常需要同时管理多个 Node.js 应用,因此 PM2 的使用对于提升开发效率和项目运维非常有帮助。

本文将介绍如何配置 PM2,以及如何高效地管理多个 Node.js 应用。

安装 PM2

首先,我们需要安装 PM2。可以通过以下命令来全局安装 PM2。

--- ------- --- --

启动 Node.js 应用

启动 Node.js 应用非常简单,只需要在命令行执行以下命令即可。

--- ----- ------

其中,app.js 是 Node.js 应用的入口文件。如果有其他的参数,可以在后面加上,例如:

--- ----- ------ ------------ -------

这里我们使用了两个命令行参数:--name--watch

  • --name 表示 PM2 启动这个应用的名称,方便后续我们进行操作和查看日志等信息。
  • --watch 表示 PM2 监听指定的文件或目录,当文件或目录中的文件发生变化时,PM2 会自动重启应用。

查看应用状态

可以使用以下命令查看所有的进程状态。

--- ------

可以看到,我们刚才启动的名为 myapp 的 Node.js 应用的状态为 online,当前有一个实例在运行。

------------------------------------------------------------------------------------------------
- --- ---- - -- - ------- - - - ------- -------- ------  - ------ - ----  - --------  - -------- -
------------------------------------------------------------------------------------------------
- -----    - -  - -----   - - - ------- -      - --      - ------ - ----- -------   -          -
------------------------------------------------------------------------------------------------

如果我们需要查看具体某个应用的状态,可以使用以下命令。

--- ------ ----------

例如:

--- ------ -----

日志管理

PM2 提供了强大的日志管理功能,可以方便地查看 Node.js 应用的日志。

可以使用以下命令查看所有应用的日志。

--- ----

如果我们需要查看具体某个应用的日志,可以使用以下命令。

--- ---- ----------

例如:

--- ---- -----

进程管理

在实际项目中,我们可能需要对进程进行一些管理操作,例如:停止、重启、删除等。

停止应用

可以使用以下命令停止所有的进程。

--- ---- ---

可以使用以下命令停止指定的应用。

--- ---- ----------

例如:

--- ---- -----

重启应用

可以使用以下命令重启所有的进程。

--- ------- ---

可以使用以下命令重启指定的应用。

--- ------- ----------

例如:

--- ------- -----

删除应用

可以使用以下命令删除指定应用。

--- ------ ----------

例如:

--- ------ -----

高效管理多个应用

在实际项目开发中,我们通常需要同时管理多个 Node.js 应用。这时,我们需要对 PM2 进行配置,以提高效率。

配置文件

我们可以使用配置文件来定义应用的启动参数和命令行参数等。

在应用的根目录下创建一个 ecosystem.config.js 文件,内容如下所示。

-------------- - -
  ---- - -
    -
      ----        - --------
      ------      - -----------
      -----       - -----
      ---- -
        ----------- -------------
      --
      -------------- - -
        ----------- ------------
      -
    -
  -
-

其中,apps 数组中可以定义多个应用。每个应用包含以下参数。

  • name:应用名称
  • script:入口文件
  • watch:文件或目录的路径,当文件或目录发生变化时,PM2 会自动重启应用
  • env:环境变量(开发环境)
  • env_production:环境变量(生产环境)

启动应用

在应用的根目录下执行以下命令,启动所有的应用。

--- ----- -------------------

可以看到,所有的应用都已经成功启动,并且状态为 online

------------------------------------------------------------------------------------------------
- --- ---- - -- - ------- - - - ------- -------- ------  - ------ - ----  - --------  - -------- -
------------------------------------------------------------------------------------------------
- -----    - -  - -----   - - - ------- -      - --      - ------ - ----- -------   -          -
- ------   - -  - -----   - - - ------- -      - --      - ------ - ----- -------   -          -
------------------------------------------------------------------------------------------------

进程守护

有时候,我们可能需要在进程意外退出时,自动重启应用。可以使用以下命令开启进程守护功能。

--- -------
--- ----

pm2 startup 命令会生成一个启动脚本,这可以在系统启动时自动启动 PM2。pm2 save 命令会将当前 PM2 进程列表保存到文件中,这样可以在重启服务器时恢复之前的 PM2 进程列表。

结论

通过本文,我们学习了如何配置 PM2,以及如何高效地管理多个 Node.js 应用。PM2 是一个非常强大的进程管理工具,可以帮助我们提升开发效率和项目运维。在实际项目中,我们建议使用 PM2 来管理 Node.js 应用,它会极大地提升我们的工作效率。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/670b0dc5d91dce0dc886f9d9