Как правильно запустить приложение с несколькими узлами, используя PM2 на EC2?

#node.js #amazon-ec2 #pm2

#node.js #amazon-ec2 #pm2

Вопрос:

На моем EC2 я развертываю 2 приложения nodejs.

То, что я делаю раньше, — это создание нескольких экранов и запуск запуска npm.

Теперь я пытаюсь использовать PM2, я установил его внутри ec2 и попробовал следующую команду запуска:

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

Процесс выполняется, но я не думаю, что это было то, чего я ожидал.
вот мой сценарий запуска внутри package.json

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

Я также попытался добавить добавление запуска pm2 внутри package.json, но, как и ожидалось, не удалось.

Я впервые пробую PM2, поэтому сейчас я совершенно потерян. Заранее спасибо.

Ответ №1:

сначала создайте файл ecosystem.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

Комментарии:

1. после нескольких попыток, наконец, поймите это. Спасибо