教程 pm2 tutorial

配置文件

在 PM2 中,配置文件是一个强大的工具,它允许用户设置进程管理的各项参数,优化应用的启动和运行方式。PM2 配置文件通常是一个 JSON 或 JavaScript 文件,包含了关于应用启动的各类信息。

1. 配置文件的基本结构

PM2 配置文件包含了多个字段,每个字段代表了不同的设置选项。以下是一个简单的配置文件示例:

json
{
  "apps": [
    {
      "name": "my-app",
      "script": "./app.js",
      "instances": 2,
      "watch": true,
      "env": {
        "NODE_ENV": "production"
      }
    }
  ]
}
  • apps: 定义了多个应用的数组,每个应用可以有独立的设置。
  • name: 应用的名称,用于在 PM2 中标识应用。
  • script: 启动应用的脚本路径。
  • instances: 定义应用实例的数量,支持多核分配。
  • watch: 是否启用文件监控,当文件变动时自动重启应用。
  • env: 环境变量的设置,NODE_ENV 通常设为 production 或 development。

2. 配置项详细说明

  • name: 应用的名称,用于 PM2 中的标识。可以是任意字符串。
  • script: 启动应用的主脚本,可以是 JavaScript、TypeScript 或其他支持的文件。
  • instances: 设置实例数量。你可以指定一个数字,或者使用 max 来根据机器的 CPU 核数自动启动实例。
  • watch: 如果为 true,PM2 将监控文件系统变化,自动重启应用。适用于开发环境。
  • env: 环境变量,可以指定多个环境变量以供不同的环境使用。

例如,在开发环境中你可能会设置不同的数据库连接字符串,或者不同的日志级别。

3. 高级配置选项

除了基础配置,PM2 还提供了许多高级功能来优化应用的性能和管理。

  • exec_mode: 定义应用的执行模式。常见的模式有 fork(单进程模式)和 cluster(多进程模式)。
json
  "exec_mode": "cluster"
  • error_file 和 out_file: 用于指定错误日志和标准输出日志的位置。
json
  "error_file": "./logs/app-error.log",
  "out_file": "./logs/app-output.log"
  • merge_logs: 将多个实例的日志合并到一个文件中。
json
  "merge_logs": true
  • cron_restart: 允许定期重启应用,比如每小时或每天重启一次。
json
  "cron_restart": "0 * * * *"

4. 如何使用 PM2 配置文件

要使用 PM2 配置文件,首先需要将其保存为一个文件(例如 ecosystem.config.js 或 ecosystem.json)。然后,通过以下命令启动应用:

bash
pm2 start ecosystem.config.js

PM2 将根据配置文件中的设置启动应用并管理其生命周期。如果配置文件发生变化,可以使用以下命令重新加载配置:

bash
pm2 reload ecosystem.config.js

5. 结语

PM2 配置文件为应用提供了灵活的配置和管理方式,尤其适用于需要高可用性和稳定性的生产环境。通过合理配置 PM2,你可以轻松管理 Node.js 应用,优化性能,并确保应用的高效运行。


PM2 的配置文件让你对应用管理有了更多的控制,无论是日志管理、实例管理,还是监控与重启策略,都可以通过配置文件轻松实现。