如何在 PM2 中部署多个 Node.js 应用

阅读时长 4 分钟读完

在前端开发中,我们经常需要同时部署多个 Node.js 应用。PM2 是一个流行的 Node.js 进程管理器,可以帮助我们轻松地管理多个 Node.js 应用,并提供了很多有用的功能,如自动重启、负载均衡等。本文将介绍如何在 PM2 中部署多个 Node.js 应用。

安装 PM2

首先,我们需要安装 PM2。可以使用 npm 命令进行安装:

创建 Node.js 应用

假设我们有两个 Node.js 应用,分别是 app1app2。我们可以分别创建两个目录,分别用于存放这两个应用的代码。

在每个目录中,我们需要创建一个 package.json 文件,并在其中添加以下内容:

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

在每个目录中,我们还需要创建一个 index.js 文件,用于编写应用代码。这里以 app1 为例,示例代码如下:

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

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

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

部署 Node.js 应用

在完成应用代码编写后,我们可以使用 PM2 来部署这两个应用。首先,我们需要在每个应用目录中使用以下命令启动应用:

这个命令使用 npm 启动应用,并将应用的名称设置为 app1。我们可以在启动命令中使用 --name 参数来为应用指定名称。

接着,我们可以使用以下命令列出所有正在运行的应用:

这个命令将列出所有正在运行的应用的名称、状态、PID、CPU 和内存使用情况等信息。

如果我们需要停止某个应用,可以使用以下命令:

这个命令将停止名称为 app1 的应用。

如果我们需要重启某个应用,可以使用以下命令:

这个命令将重启名称为 app1 的应用。

如果我们需要删除某个应用,可以使用以下命令:

这个命令将删除名称为 app1 的应用。

实现负载均衡

PM2 还支持负载均衡功能,可以让多个应用共享同一个端口,从而提高性能和可靠性。

假设我们现在有两个应用,分别监听端口 30003001。我们可以使用以下命令启动这两个应用,并启用负载均衡功能:

这个命令将启动两个应用,并将应用的名称分别设置为 app1app2。我们使用 --port 参数来指定应用监听的端口。

接着,我们使用 pm2 scale 命令来指定每个应用的实例数量。这里我们将 app1 的实例数量设置为 2,将 app2 的实例数量设置为 3

最后,我们使用 pm2 startuppm2 save 命令来设置 PM2 开机自启,并保存当前的应用配置。

现在,我们可以使用以下命令列出所有正在运行的应用:

这个命令将列出所有正在运行的应用的名称、状态、PID、CPU 和内存使用情况等信息。

如果我们通过浏览器访问 http://localhost:3000http://localhost:3001,将会看到两个应用的响应。由于我们启用了负载均衡功能,PM2 会自动将请求分发给不同的应用实例,从而实现负载均衡。

结论

在本文中,我们介绍了如何在 PM2 中部署多个 Node.js 应用,并实现负载均衡功能。通过使用 PM2,我们可以轻松地管理多个应用,并提高应用的性能和可靠性。希望本文能够帮助你更好地管理和部署 Node.js 应用。

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

纠错
反馈