Как запустить nginx и Node.js при запуске сервера EC2 (linux) - PullRequest
0 голосов
/ 25 марта 2019

Как запустить nginx и Node.js при запуске сервера?

Чтобы запустить Amazon EC2 с автоматическим масштабированием AWS, я должен напрямую подключиться к EC2 для запуска nginx и Node.js.

Можно ли это сделать для автоматического масштабирования?


В Amazon EC2 я хочу запустить nginx с Node.js во время запуска EC2 с помощью автоматического масштабирования.

EC2 настроен как группа автоматического масштабирования с использованием изображений. Я хочу запустить приложения EC2 Node.js и nginx, которые запускаются с помощью автоматического масштабирования, вместе с запуском сервера EC2.

Для nginx я могу запустить исполняемый файл с chkconfig, но приложение Node.js будет работать как pm2, используя код, написанный в package.json.

Как я могу запустить nginx и Node.js при запуске EC2 и позволить новому EC2 - запущенному с автоматическим масштабированием - отвечать правильно?


комментарий ответ:

Я не хочу запускать node.js с помощью команды "node app.js".

Я хочу запустить node.js с помощью package.json (скрипт)

ех.

  "start": "NODE_ENV=production PORT=3000 pm2 start server.js -i -1"

Как я могу это сделать?

Ваши предложения используют файл сценария инициализации linux-сервера.

Но я хочу установить NODE_ENV, PORT и использовать команду pm2.


решение

Я решил проблему.

При загрузке Linux я попытался использовать файл скрипта для автоматического запуска node.js.

Я создал файл сценария и автоматически запустил сценарий оболочки после загрузки linux, но это не очень хорошая идея.

Кроме того, pm2 startup и ecosystem.config.js можно использовать для гибкого решения проблем.

Спасибо за ваш ответ.

1 Ответ

0 голосов
/ 25 марта 2019

Это не имеет ничего общего с автомасштабированием. Чаще всего это связано с EC2 AMI (Amazon Machine Image), с которым автоскалер запускает ваши экземпляры EC2, и, возможно, также с «пользовательскими метаданными», которые вы передаете в экземпляр при запуске. Это единственные две вещи, которые влияют на то, что делает экземпляр EC2, когда и после его запуска, до тех пор, пока он не начнет взаимодействовать с внешним миром.

Итак, вам нужно создать AMI, настроенный таким образом, чтобы при запуске экземпляра EC2 из этого AMI запускались правильные вещи. Что вы должны сделать, это взять AMI, который вы хотите использовать, в качестве отправной точки, запустить этот AMI в экземпляр, внести необходимые изменения и установки, которые вы хотите, а затем сохранить новый AMI. Затем измените свою группу автоматического масштабирования, чтобы запускать новые экземпляры с этим новым AMI.

Вы можете поочередно посылать сценарий в ваших «пользовательских метаданных», который запускает вещи, но это редко то, что вы хотите делать ». В большинстве случаев вы хотите, чтобы ваш AMI делал правильные вещи.

Также возможно, что вы используете какой-то провайдер после загрузки, такой как Chef, Ansible или Chef Habitat. Если вы есть, то там вы бы все настроили. Вы бы хотели, чтобы эта система выполняла работу, которую вы описываете. Но если вы делаете это, то, что я сказал ранее, все еще применимо. Чтобы это работало, вам часто приходилось создавать собственный AMI, в котором уже есть части системы инициализации, чтобы эта система могла подключиться к ней и подготовить ее. Эти системы также могут начинаться с обычного AMI. Это зависит от системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...