PM2 是一个用于管理 Node.js 进程的生产环境工具。PM2 可以检测并重启挂掉的进程,管理多个进程,并提供了一些有用的功能,如负载均衡、自动缩放等。在 PM2 中,配置文件是十分重要的,本文将深入讲解配置文件中的各种参数,以帮助前端开发者更好地使用 PM2。
基本语法
PM2 配置文件是一个 JSON 格式的文件,通常命名为 ecosystem.config.js
。一个最简单的配置文件可以长这样:
module.exports = { apps: [ { name: "myapp", script: "./app.js", }, ], };
这个配置文件定义了一个应用程序 myapp
,它的启动脚本是 ./app.js
。将这个配置文件命名为 ecosystem.config.js
并在应用程序文件夹下运行 pm2 start
命令即可启动应用程序。
apps
apps
数组用于定义一个或多个应用程序,每个应用程序都有一个名称(name
)和一个启动脚本(script
)。
-- -------------------- ---- ------- -------------- - - ----- - - ----- -------- ------- ----------- -- - ----- ------------- ------- ---------------- -- -- --
Instances
instances
参数用于指定要启动的应用程序实例数,默认值为 1。如果设置为 0,则表示将根据 CPU 核心数量启动相同数量的实例。
-- -------------------- ---- ------- -------------- - - ----- - - ----- -------- ------- ----------- ---------- -- -- -- --
Autorestart
autorestart
参数用于指定是否自动重启应用程序。默认情况下,它设置为 true
,即当应用程序崩溃或退出时将自动重启。
-- -------------------- ---- ------- -------------- - - ----- - - ----- -------- ------- ----------- ------------ ------ -- -- --
Watch
watch
参数用于指定要监视的文件或文件夹,当这些文件发生更改时,将重新启动应用程序。可以使用 glob 模式来匹配多个文件。默认情况下,它设置为 false
,即不监视任何文件。
-- -------------------- ---- ------- -------------- - - ----- - - ----- -------- ------- ----------- ------ --------------- -------------------- -- -- --
Watch Ignore
watch_ignore
参数用于指定要忽略的文件或文件夹,这些文件不会影响应用程序的重新启动。可以使用 glob 模式来匹配多个文件。默认情况下,它设置为 false
,即不忽略任何文件。
-- -------------------- ---- ------- -------------- - - ----- - - ----- -------- ------- ----------- ------ --------------- -------------------- ------------- ----------------- -- -- --
Error Log
error_file
参数用于指定应用程序错误日志的路径。默认情况下,它设置为 ~/.pm2/logs/<name>-error.log
,其中 <name>
为应用程序名称。
-- -------------------- ---- ------- -------------- - - ----- - - ----- -------- ------- ----------- ----------- ------------------------- -- -- --
Out Log
out_file
参数用于指定应用程序输出日志的路径。默认情况下,它设置为 ~/.pm2/logs/<name>-out.log
,其中 <name>
为应用程序名称。
-- -------------------- ---- ------- -------------- - - ----- - - ----- -------- ------- ----------- --------- ----------------------- -- -- --
Environment Variables
env
参数用于指定应用程序的环境变量。可以使用对象字面量来指定多个环境变量。应用程序可以通过 process.env
对象访问这些变量。
-- -------------------- ---- ------- -------------- - - ----- - - ----- -------- ------- ----------- ---- - --------- ------------- -------- ------------ -------- ------- -- -- -- --
Node Args
node_args
参数用于指定在启动 Node.js 进程时传递的额外参数。可以使用字符串或数组来指定多个参数。
-- -------------------- ---- ------- -------------- - - ----- - - ----- -------- ------- ----------- ---------- --- --------------- -- -- --
Override Environment Variables
env_production
参数用于覆盖 env
参数中指定的环境变量,仅在 NODE_ENV
为 production
时才会应用。
-- -------------------- ---- ------- -------------- - - ----- - - ----- -------- ------- ----------- ---- - --------- -------------- -------- ------------ -------- ------- -- --------------- - --------- ------------- -------- ----------------- -------- ------- -- -- -- --
相关命令
- 启动应用程序:
pm2 start ecosystem.config.js
- 停止应用程序:
pm2 stop <APP_NAME>
或pm2 stop ecosystem.config.js
- 重启应用程序:
pm2 restart <APP_NAME>
或pm2 restart ecosystem.config.js
- 运行应用程序状态:
pm2 status <APP_NAME>
或pm2 status ecosystem.config.js
总结
本文介绍了 PM2 配置文件中的各种参数,包括应用程序、实例数、自动重启、文件监视、错误日志、输出日志、环境变量、Node.js 参数等。使用这些参数可以轻松地管理和部署 Node.js 应用程序。希望这篇文章可以帮助前端开发者更好地理解和使用 PM2。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649699a748841e98943cc534