Linux 下使用 PM2,从部署到监控

阅读时长 5 分钟读完

简介

PM2 是一个流行的、跨平台的 Node.js 进程管理工具。它可以帮助开发人员快速部署和管理 Node.js 应用程序,从而提高应用程序的可靠性和可扩展性。

在本文中,我们将详细介绍如何在 Linux 上安装、配置和使用 PM2。我们还将讨论如何在 PM2 中使用环境变量、配置文件和插件来优化应用程序的性能、安全性和可维护性。

安装 PM2

安装 PM2 很简单,首先保证已安装 Node.js 环境,然后使用 npm 全局安装 PM2:

如果出现了权限问题,可以使用管理员身份进行安装:

安装完成后,可以使用以下命令检查 PM2 版本:

部署应用程序

让我们从简单的示例开始,创建一个名为 app.js 的 Node.js 应用程序:

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

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

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

接下来,在项目根目录下使用以下命令启动应用程序:

现在,应用程序运行在终端窗口中,但是我们关闭终端窗口后,应用程序也会随着终端一同停止运行。

为了更好的部署应用程序,我们使用 PM2 进行管理。使用以下命令在 PM2 中添加应用程序:

PM2 将启动应用程序,并为其生成一个进程 ID(PID)。使用以下命令检查应用程序的状态:

此时,可以使用以下命令停止应用程序:

或者,可以使用以下命令重启应用程序:

环境变量

在实际应用程序中,我们需要使用环境变量来区分不同的运行环境(如开发环境、测试环境和生产环境),以便在不同的环境中使用不同的配置和行为。

在 PM2 中使用环境变量非常简单,在启动应用程序时使用以下命令来设置环境变量:

例如,假设我们要将应用程序部署到生产环境中,并使用名为 production 的配置文件。在启动应用程序时,我们可以使用以下命令:

在应用程序中使用环境变量也非常简单,可以从 process.env 对象中获取环境变量的值,例如:

配置文件

在复杂的应用程序中,可能需要多个环境变量和配置文件。为了更好地管理应用程序的配置,可以使用 PM2 的配置文件。

首先,在项目根目录下创建一个名为 pm2.config.js 的文件,使用以下格式来声明配置:

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

在配置文件中,我们定义了一个名为 app 的应用程序,使用文件名 app.js 来运行。

还定义了两个环境:开发环境和生产环境。在开发环境中,我们可以使用默认的 NODE_ENV 环境变量;在生产环境中,我们可以使用 env_production 中定义的 NODE_ENV 环境变量。

现在,我们可以使用以下命令来使用配置文件启动应用程序:

插件

PM2 还支持多个插件,用于改进应用程序的性能、安全性和可维护性。以下是一些常见的插件:

Log Rotate

Log Rotate 插件用于自动管理应用程序的日志文件。使用以下命令安装 Log Rotate 插件:

启用 Log Rotate 插件后,应用程序的日志文件将会自动切割和压缩。

Keymetrics

Keymetrics 插件用于监控和管理远程服务器上的 PM2 进程。在启用 Keymetrics 插件后,可以从 Keymetrics 网站上实时监控和管理远程服务器上的 PM2 进程。

使用以下命令安装 Keymetrics 插件:

然后,需要在 Keymetrics 网站上注册一个帐户,并在插件设置中输入 API 密钥。

结论

本文介绍了如何在 Linux 上安装、配置和使用 PM2,从部署到监控,包括了环境变量、配置文件和插件的使用方法。PM2 是一个非常重要的工具,可以帮助开发人员更好地处理 Node.js 应用程序的运行和管理。

作为开发人员,希望我们可以使用 PM2 更好地管理我们的应用程序,并在实际场景中不断学习和优化 PM2 的使用技巧。

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

纠错
反馈