PM2 配置文件详解与示例

阅读时长 4 分钟读完

什么是 PM2?

PM2 是一个流行的 Node.js 进程管理器,它可以帮助我们启动、停止、重启和监控 Node.js 进程。PM2 还提供了许多有用的功能,如负载均衡、自动重启、日志管理等。

为什么要使用 PM2 配置文件?

PM2 默认情况下可以自动监控和重启 Node.js 进程,但是如果我们需要更高级的功能,比如指定环境变量、设置最大内存限制等,就需要使用 PM2 配置文件。使用 PM2 配置文件可以让我们更灵活、更方便地管理 Node.js 进程。

PM2 配置文件示例

以下是一个 PM2 配置文件的示例:

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

配置文件详解

apps

apps 是一个数组,每个元素代表一个 Node.js 进程。可以在一个 PM2 配置文件中同时管理多个进程。在上面的示例中,我们只有一个进程,它的名称是 myapp,启动的脚本是 ./app.js

name

name 属性用于指定进程的名称。这个名称将在 PM2 的日志中显示。在上面的示例中,我们将进程命名为 myapp

script

script 属性用于指定进程的启动脚本。在上面的示例中,我们的启动脚本是 ./app.js

env

env 属性是一个对象,用于设置环境变量。这些变量将会被传递给 Node.js 进程。在上面的示例中,我们设置了两个环境变量:NODE_ENVDATABASE_URL

env_production

env_production 属性也是一个对象,它用于设置生产环境下的环境变量。当使用 pm2 start app.js --env production 启动应用程序时,这些变量将会被传递给 Node.js 进程。在上面的示例中,我们只设置了一个环境变量 NODE_ENV

instances

instances 属性用于设置进程的数量。可以将其设置为数字或字符串 "max",表示使用所有可用的 CPU 核心。在上面的示例中,我们将 instances 设置为 "max"

exec_mode

exec_mode 属性用于指定 PM2 进程模式。可以将其设置为 "fork"(默认模式)"cluster"。在上面的示例中,我们将 exec_mode 设置为 "cluster"

max_memory_restart

max_memory_restart 属性用于指定应用程序超过多少内存时,PM2 将自动重启 Node.js 进程。可以将其设置为数字或字符串,例如 "1G"。在上面的示例中,我们将 max_memory_restart 设置为 "1G"

log_date_format

log_date_format 属性用于指定 PM2 日志文件的日期格式。可以使用 Moment.js 的日期格式。在上面的示例中,我们将 log_date_format 设置为 "YYYY-MM-DD HH:mm:ss Z"

merge_logs

merge_logs 属性用于指定是否将不同进程的日志合并。如果将其设置为 true,则所有进程的日志将合并,并且在一个日志文件中输出。在上面的示例中,我们将 merge_logs 设置为 true

error_file

error_file 属性用于指定 PM2 错误日志文件的路径。在上面的示例中,我们将错误日志文件放在 ./logs/error.log

out_file

out_file 属性用于指定 PM2 正常输出日志文件的路径。在上面的示例中,我们将日志文件放在 ./logs/out.log

总结

PM2 配置文件可以帮助我们更灵活、更方便地管理 Node.js 进程。在配置文件中,我们可以指定环境变量、设置进程数量、指定日志文件路径等。在实际的项目中,我们可以根据需要设置不同的配置文件,并根据环境变量来选择不同的配置文件。

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

纠错
反馈