如何使用 PM2 部署多个 Node.js 应用?

阅读时长 8 分钟读完

PM2 是一个基于 Node.js 的进程管理器,可以轻松地管理 Node.js 应用。PM2 支持多进程,可以实现负载均衡和高可用。在本篇文章中,我们将介绍如何使用 PM2 部署多个 Node.js 应用。

安装 PM2

如果你还没有安装 PM2,可以通过以下命令安装:

部署应用

首先,我们需要准备好我们的 Node.js 应用。这里我们以创建一个简单的 HTTP 服务为例。新建一个文件夹 myapp,并在该文件夹下新建一个 index.js 文件,代码如下:

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

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

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

这是一个简单的 HTTP 服务,它会监听 3000 端口,并返回一条 Hello World 的信息。接下来,我们可以使用 PM2 来启动和管理我们的应用。

这里我们使用 pm2 start 命令来启动我们的应用,myapp/index.js 是我们的应用入口文件,--name myapp 表示我们给应用起了一个名字,以便后续管理。

可以通过以下命令查看该应用的状态:

我们会看到如下输出:

可以通过以下命令停止该应用:

然后可以使用以下命令删除该应用:

部署多个应用

如果我们需要部署多个应用,我们可以通过以下命令来启动多个应用:

这里我们分别启动了三个不同的应用,并分别给它们命名为 myapp1myapp2myapp3

我们可以通过以下命令查看所有启动的应用:

我们会看到如下输出:

可以使用以下命令来停止、删除每个应用:

负载均衡

当我们部署多个应用时,我们需要考虑如何实现负载均衡。PM2 提供了多种负载均衡策略,包括负载均衡、轮询、最小连接数和源地址哈希等。

例如,我们可以通过以下命令来启动两个应用,并使用轮询算法来实现负载均衡:

这里我们使用 -i 参数来指定启动两个应用。我们可以使用以下命令来查看应用的状态:

我们会看到如下输出:

可以看到,这里启动了两个 id 为 0 和 1 的应用。

接下来,我们可以使用 pm2 scale 命令来扩容或缩容应用:

这里我们使用 pm2 scale 命令来将应用 myapp1 的实例数扩容到 4。

可以使用以下命令来查看应用的状态:

我们会看到如下输出:

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

可以看到,我们扩容后,应用实例数变为了 4。

总结

本篇文章介绍了如何使用 PM2 部署多个 Node.js 应用,并实现负载均衡。如今,Node.js 在互联网应用中使用越来越广泛,通过学习和使用 PM2,我们可以更加方便地管理和部署 Node.js 应用,确保应用的可靠性和高效性。

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

纠错
反馈