首页 > 解决方案 > 如何在 EC2 上使用 PM2 正确运行多个 nodejs 应用程序?

问题描述

在我的 EC2 上,我正在部署 2 个 nodejs 应用程序。

我之前做的是创建一个多屏并运行 npm run start。

现在我正在尝试使用 PM2,我将它安装在 ec2 中并尝试了以下启动命令:

pm2 start --name "APP_NAME" npm -- start

该过程运行,但我认为这不是我所期望的。这是我在package.json中的运行脚本

"start": "env-cmd -f ./config/app.env node index.js"

我还尝试在package.json中添加添加 pm2 start但按预期失败。

这是我第一次尝试 PM2,所以我现在很迷茫。提前致谢。

标签: node.jsamazon-ec2pm2

解决方案


首先创建一个文件生态系统.config.js:

module.exports = {
  apps : [
      {
        name: "myapp",
        script: "./app.js",
        watch: true,
        env: {
            "PORT": 3000,
            "NODE_ENV": "development"
        },
        env_production: {
            "PORT": 80,
            "NODE_ENV": "production",
        }
      }
  ]
}

之后你可以像这样运行它:

pm2 start ecosystem.conf.js

用于处理日志

npm i pm2-logrotate  

或者

pm2 install pm2-logrotate

之后,您必须在主机中添加 pm2 作为服务。

pm2 startup

在所有配置和检查 pm2 应用程序之后:

pm2 status <instance number> 
pm2 logs

您可以使用以下命令将当前配置保存在 pm2 中:

pm2 save

有关 pm2启动的更多详细信息


推荐阅读