PM2 部署多端口的 Node.js 应用

阅读时长 5 分钟读完

标题:PM2 部署多端口的 Node.js 应用

随着 Node.js 技术的不断发展,越来越多的应用开始使用 Node.js 进行开发。为了保证 Node.js 应用的高可用性和稳定性,在部署 Node.js 应用时,我们通常会使用 PM2 进行管理和部署。而当我们需要在一个应用中监听多个端口时,该如何使用 PM2 进行部署呢?本文将详细介绍使用 PM2 部署多端口的 Node.js 应用的方法和注意事项。

什么是 PM2

PM2 是一个 Node.js 的进程管理器,可以用于管理和部署 Node.js 项目,并提供了多种优秀的功能。例如:进程守护、负载均衡、自动重启、日志管理、远程管理等。PM2 还支持应用程序的多开口管理,可以让我们轻松地在一个应用中监听多个端口。

PM2 部署多端口应用的方法

当我们需要在一个应用中监听多个端口时,可以通过设置多个监听器的方式来实现。具体步骤如下:

  1. 在应用中使用 Node.js 的 net 模块或者 http 模块启动多个监听器,分别监听不同的端口。例如,我们在同一个应用中分别监听 3000 端口和 4000 端口:

    -- -------------------- ---- -------
    ----- ---- - ----------------
    
    ----- ------- - ----------------------- ---- -- -
      ------------------ ---------------- ---------------
      -------------- ------ ------
    ----------------
    
    ----- ------- - ----------------------- ---- -- -
      ------------------ ---------------- ---------------
      -------------- ------ ------
    ----------------
    展开代码
  2. 在应用的根目录下创建 pm2.config.js 文件,来配置 PM2 的运行参数。具体配置如下:

    -- -------------------- ---- -------
    -------------- - -
      ----- -
        -
          ----- ---------
          ------- -------------
          ---------- ------
          ---- -
            --------- -------------
            ------- -----
            ------- -----
          --
          ---------- ----------
          ----------- -----
          --------------- ------
        --
      --
    --
    展开代码
    • name: 应用的名称
    • script: 应用的启动文件路径
    • instances: 进程数,可以设置为 "max" 表示根据 CPU 核心数自动调整
    • env: 环境变量,可以在应用中通过 process.env 获取。这里我们设置了两个端口变量 PORT_1PORT_2
    • exec_mode: 运行模式,可以设置为 "cluster" 表示启用集群模式
    • wait_ready: 应用启动完成后,是否等待应用内部按顺序 ready 事件被触发
    • listen_timeout: 集群模式下,应用启动完成后的监听超时时间,单位是毫秒
  3. 通过 PM2 启动应用。在命令行中输入以下命令:

    PM2 会以集群模式启动应用,并根据 CPU 核心数自动调整进程数。

  4. 查看应用的运行状态,可以在命令行中输入:

    如果应用的状态为 online,则代表应用已经成功部署。

  5. 测试应用的端口监听功能。在浏览器中分别访问 http://localhost:3000http://localhost:4000,应该可以看到两个不同的响应结果。

至此,我们已经成功地使用 PM2 部署了一个多端口的 Node.js 应用。

注意事项

在使用 PM2 部署多端口的 Node.js 应用时,需要注意以下几点:

  • 需要在应用中使用 Node.js 的 net 模块或者 http 模块启动多个监听器,分别监听不同的端口。
  • 在 PM2 的配置文件中,需要设置环境变量,以便应用可以获取到监听的端口信息。
  • 需要在 PM2 的配置文件中,设置 exec_mode 为 "cluster",启动集群模式,才能让应用在多个进程间共享端口信息。
  • 在集群模式下,需要设置 wait_ready 为 true,等待应用启动完成后再进行访问,否则会出现连接失败的问题。
  • 如果应用没有正确监听端口,可能会出现连续重启的情况,需要仔细检查代码是否存在问题。

结语

本文介绍了使用 PM2 部署多端口的 Node.js 应用的方法和注意事项。对于需要在一个应用中监听多个端口的开发者来说,这是一个非常实用的技能。通过本文的学习,你可以掌握如何使用 PM2 部署多端口的 Node.js 应用,并能够应用到实际的开发中。

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

纠错
反馈

纠错反馈