Node.js 企业级应用程序的部署及管理 —— 使用 PM2

阅读时长 5 分钟读完

前言

Node.js 可以帮助企业快速地搭建高性能、高可用、高并发的后台系统。然而,对于大型企业级项目而言,如何实现 Node.js 应用的可靠部署和高效管理是一个非常重要的问题。

本文将为大家介绍使用 PM2 实现 Node.js 企业级应用程序部署和管理的方法。PM2 作为一款开源的进程管理工具,可以帮助我们轻松地进行应用的启动、停止、自动重启、日志管理、性能监控等操作,极大地提高了 Node.js 应用的可靠性和可维护性。

什么是 PM2

PM2 是一个守护进程管理工具,可以通过简单的命令来启动、停止、重启、监控应用程序,还可以在部署时实现自动化管理。PM2 还提供了进程守护、故障重启、负载均衡等功能,适用于 Node.js 应用的生产环境。相对于通过手动启动和停止进程的方法,PM2 更具可靠性和可维护性。

PM2 的主要特性

  • 支持集群化部署,负载均衡
  • 自动重启应用程序
  • 直接从 Git 上拉取代码进行部署
  • 随时监控服务器状态,高效解决问题
  • 日志管理,方便查看应用程序输出信息
  • 开箱即用,无需任何配置文件

如何使用 PM2 部署 Node.js 应用

安装 PM2

使用 npm 安装 PM2

启动应用程序

启动应用程序的最简单方法是使用 pm2 start 命令:

启动之后,我们可以使用 pm2 list 命令查看所有的应用程序状态:

应用程序配置

PM2 还支持一些常用的应用程序配置,例如设置内存限制、设置并发数、设置环境变量等。

可以通过修改 package.json 文件的 scripts 字段来设置应用程序的启动配置:

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

日志管理

PM2 也可以帮助我们管理程序的输出信息。PM2 会自动写入各个进程的输出信息到相应的日志文件中,方便我们随时查看程序运行时的状况。

使用 pm2 logs 命令可以查看 PM2 的日志。

我们也可以单独查看应用程序的日志:

进程监控

通过 PM2 我们可以时刻监控应用程序的运行状态。使用 pm2 monit 命令可以查看所有进程的状态与 CPU、内存占用情况:

自动重启

使用 PM2 启动应用时,我们可以选择自动重启应用程序。可以使用 --watch 参数来监听应用程序的改动,并自动重启应用程序:

部署流程

PM2 提供了多种自动化部署流程,下面介绍一种通过 Git 来自动化部署 Node.js 应用程序的流程。

  1. 在服务器上创建 Git 仓库,并设置好 SSH 公钥。

  2. 通过 SSH 连接到服务器,在仓库中初始把 master 分支的代码克隆到服务器上:

  3. 安装 Node.js 和 NPM:

  4. 安装 PM2:

  5. 在项目的根目录创建 PM2 配置文件:

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

    配置文件中共有四个重要参数需要配置:

    • name: 应用程序的名称(可以自定义);
    • script: 启动应用程序的脚本文件;
    • instances: 启动的进程数量,"max" 表示根据机器内核数自动创建数量;
    • env: 设置环境变量,在应用程序中可以通过 process.env.NODE_ENV 获取到。
  6. 在项目的根目录使用 PM2 启动应用程序:

  7. 如果应用程序中有新的代码提交,我们可以通过 SSH 连接到服务器,将最新的代码 pull 下来。然后使用 PM2 的 reload 命令来重启应用程序:

总结

通过本文的介绍,我们了解了 PM2 这款强大的 Node.js 进程管理工具及其主要特性。并且详细讲解了如何使用 PM2 来部署和管理 Node.js 企业级应用程序,包括启动应用程序、配置、日志管理、进程监控等。

使用 PM2 可以大大提高 Node.js 应用程序的可靠性和可维护性,是企业级 Node.js 应用程序的必备工具之一。希望本文对大家的工作有所帮助,欢迎提出建议和意见。

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

纠错
反馈