PM2 启动多个 Node.js 应用的方法

阅读时长 8 分钟读完

前言

Node.js 是一个非常流行的 JavaScript 运行环境,很多网站和应用程序都是使用它构建的。在开发 Node.js 应用过程中,我们经常需要启动多个 Node.js 应用程序,这时使用 PM2 可以帮助我们管理这些应用程序并保持它们在后台稳定运行。

本文将介绍如何使用 PM2 启动多个 Node.js 应用,并详细探讨其中的概念和技术,希望能对前端开发者们有一定的指导意义。

PM2 简介

PM2 是一个 Node.js 进程管理工具,它帮助我们启动、停止、重启和监控 Node.js 应用程序。PM2 还具有自动重启、负载平衡和日志管理等功能,大大提升了我们管理 Node.js 应用的效率。

PM2 的安装非常简单,只需要使用 npm 进行安装即可:

安装后,我们就可以使用 pm2 命令来管理 Node.js 应用程序了。

启动一个 Node.js 应用

我们可以使用 PM2 启动一个 Node.js 应用程序,然后让它在后台稳定运行。比如,我们有一个 app.js 文件,内容如下:

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

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

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

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

要使用 PM2 启动这个应用程序,只需要在终端中输入以下命令:

这个命令将启动一个新的 Node.js 进程运行 app.js 文件,我们可以使用 pm2 list 命令查看当前正在运行的进程列表,如下所示:

id 表示进程的 ID,name 表示应用程序的名称,namespace 是应用程序的命名空间(默认为 default),mode 表示进程的运行模式,pid 是系统分配的进程 ID,status 表示进程当前的状态,restarts 表示进程的重启次数。

启动多个 Node.js 应用

在实际开发中,我们通常需要启动多个 Node.js 应用程序,并且让它们在后台稳定运行。PM2 提供了多种方法来启动多个 Node.js 应用程序,下面我们将逐一介绍。

方法一:使用文件配置

我们可以将所有需要启动的 Node.js 应用程序的信息都写入一个 JSON 配置文件中,然后使用 PM2 启动这些应用程序。配置文件内容示例如下:

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

配置文件中包含两个应用程序的信息,分别是 app1 和 app2。其中,name 表示应用程序的名称,script 表示应用程序的入口文件,args 和 node_args 分别表示传递给 Node.js 和应用程序的参数,instances 表示应用程序的实例数,"max" 表示根据 CPU 核心数启动应用程序,"cluster" 表示使用 Node.js 内置的集群模块,会自动分配端口避免端口冲突,exec_mode 表示进程的运行模式。

配置文件编写完成后,保存为 pm2.json 文件,然后使用以下命令启动应用程序:

方法二:使用命令行参数

PM2 允许我们在命令行中指定启动多个 Node.js 应用程序。比如,我们可以使用以下命令同时启动两个应用程序:

这个命令将启动 app1.js 和 app2.js 文件,并将它们分配到不同的进程中运行。

方法三:使用 ECMAScript Module

如果我们使用 ECMAScript Module 来编写 Node.js 应用程序,则可以直接在脚本文件中添加 PM2 相关配置,以启动多个应用程序。比如,我们有两个应用程序:app1.mjs 和 app2.mjs,它们的内容分别如下:

app1.mjs:

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

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

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

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

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

app2.mjs:

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

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

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

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

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

要使用 PM2 启动这两个应用程序,我们需要在启动脚本文件(比如 index.mjs 或者 main.mjs)中添加以下代码:

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

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

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

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

这个脚本文件首先使用 ECMAScript Module 的方式引入 app1.mjs 和 app2.mjs,然后使用 PM2.connect() 方法连接到 PM2 进程,最后使用 PM2.start() 方法启动应用程序,并指定相应的配置信息。这样我们就可以使用 PM2 同时启动多个 Node.js 应用程序了。

总结

本文介绍了使用 PM2 启动多个 Node.js 应用程序的方法,并通过实例代码深入讲解了各种配置信息和使用细节,希望能对前端开发者们有所帮助。Node.js 应用程序的稳定运行对于任务执行和用户体验都有很大的影响,学会使用 PM2 管理 Node.js 应用程序将大大提高我们的开发效率和应用程序的可靠性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6492b19948841e989407e5f8

纠错
反馈