PM2 的配置文件详解及其应用

· 约 5 分钟读完

什么是 PM2?

PM2 是一个跨平台的、开源的 Node.js 应用程序的进程管理器。它可以管理 Node.js 进程的启动、重启、停止以及进程守护等功能,同时提供了丰富的监控、异常处理和自定义事件处理的能力,是广泛用于 Node.js 项目部署和管理的工具。

配置文件的作用

在使用 PM2 进行应用程序管理时,配置文件是不可或缺的一环。通过配置文件,可以指定应用程序的启动参数、环境变量、进程数量和管理方式等,从而实现更加灵活和精细的管理。同时,配置文件还可以方便地进行版本管理和复用,以及支持多人协同管理等。

配置文件的格式和语法

PM2 的配置文件采用 YAML 或 JSON 格式,并且必须保存为 pm2.config.yaml 或 pm2.config.json 文件。其中,YAML 格式的文件更加简洁和易读,但是需要注意缩进和冒号的使用等细节;而 JSON 格式的文件则更加严谨和标准化,但是需要注意分号和括号的使用等细节。

以下是一个简单的 PM2 配置文件的示例,其中包含了应用程序的名称、启动命令、环境变量和进程数量等信息:

配置文件的常用属性和参数

name

name 属性指定了应用程序的名称,是 PM2 管理应用程序时的一个关键标识。建议使用短小、简明的名称,并尽量避免使用特殊字符和中文等。

script

script 属性指定了应用程序的启动命令或脚本路径,是 PM2 启动应用程序时的关键参数。可以是通过 npm 或 yarn 安装的 Node.js 模块名称,也可以是本地文件系统中的脚本路径,甚至还可以是远程 Git 仓库的 HTTPS 或 SSH 地址。

args

args 属性指定了应用程序启动命令的附加参数,主要用于传递一些动态、可变的参数或选项。可以是字符串或数组格式,通过空格或逗号进行分隔。

env

env 属性是一个对象类型,用于指定应用程序运行时所需的环境变量。这些环境变量可以是系统级的或自定义的变量,以键值对的形式表示。

log

log 属性用于指定应用程序的日志配置,主要包括日志文件路径、日志级别、日志滚动方式等。

instances

instances 属性用于指定应用程序的进程数量,当该属性值大于 1 时,PM2 会根据进程数量启动多个进程,实现应用程序的负载均衡和高可用。

watch

watch 属性用于指定应用程序的文件变动监控配置,PM2 可以自动监测应用程序文件的变化并进行重启操作,从而实现代码更新和热部署等功能。

配置文件的应用和指导

PM2 的配置文件可以根据具体的应用场景和需求进行灵活的调整和优化。通过合理地配置文件中的各项参数和属性,可以实现更加可靠、高效和稳定的 Node.js 应用程序部署和管理,提高开发和运维效率。

在实际应用中,可以通过 Git 管理和版本控制 PM2 的配置文件,以便于团队协作和审核。同时,为了保证配置文件的安全性和机密性,建议对敏感信息进行加密或以其他形式存储,以避免信息泄露和攻击风险。

示例代码

以下是一个完整的 PM2 配置文件的示例,包含了多项属性和参数的配置。

该示例中,应用程序的名称为 my-app,启动命令为 ./src/index.js,附加参数为 --host localhost --port 3000,使用了 production 环境和 localhost 数据库,启动了 2 个进程,监测了 src/*.js 和 config/*.json 文件的变化,并将日志文件保存在 ./logs/app.log,仅记录 error 级别以上的日志,并支持日志文件滚动,最多保留 7 天数据。

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