配置文件
在 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": truecron_restart: 允许定期重启应用,比如每小时或每天重启一次。
json"cron_restart": "0 * * * *"
4. 如何使用 PM2 配置文件
要使用 PM2 配置文件,首先需要将其保存为一个文件(例如 ecosystem.config.js 或 ecosystem.json)。然后,通过以下命令启动应用:
bash
pm2 start ecosystem.config.jsPM2 将根据配置文件中的设置启动应用并管理其生命周期。如果配置文件发生变化,可以使用以下命令重新加载配置:
bash
pm2 reload ecosystem.config.js5. 结语
PM2 配置文件为应用提供了灵活的配置和管理方式,尤其适用于需要高可用性和稳定性的生产环境。通过合理配置 PM2,你可以轻松管理 Node.js 应用,优化性能,并确保应用的高效运行。
PM2 的配置文件让你对应用管理有了更多的控制,无论是日志管理、实例管理,还是监控与重启策略,都可以通过配置文件轻松实现。