aws opsworks несколько приложений nodejs?
У меня есть один стек OpsWorks Nodejs. Я устанавливаю несколько приложений nodejs. Теперь проблема в том, что все сценарии nodejs server.js прослушивают порт 80 для проверки ресурса amazon, но порт может использовать только один. Я не знаю, как решить это. Я прочитал документацию Amazon, но не смог найти решение. Я прочитал, что могу попытаться изменить переменные рецепта развертывания, чтобы настроить проверку жизненного цикла на другой порт, но это не сработало. Любая помощь?
2 ответа
Некоторое время я боролся с этой проблемой и в итоге нашел очень простое решение.
Порт установлен в атрибутах поваренной книги для развертывания...
https://github.com/aws/opsworks-cookbooks/blob/release-chef-11.10/deploy/attributes/deploy.rb
по линии...
default[:deploy][application][:nodejs][:port] = deploy[:ssl_support] ? 443 : 80
Вы можете переопределить это с помощью пользовательского стека json, например:
{
"deploy" : {
"app_name_1": {
"nodejs": {
"port": 80
}
},
"app_name_2": {
"nodejs": {
"port": 3000
}
}
},
"mongodb" : {
...
}
}
Теперь файлы monitrc в /etc/monit.d/node_web_app-.monitrc должны отражать их соответствующие порты, а monit должен поддерживать их работу!
Мое решение состояло в том, чтобы реализовать службу узла проверки ресурса, которая прослушивает порт 80. Когда к этой службе поступает запрос amazon life check, он отвечает и выполняет свою собственную логику для проверки работоспособности всех служб. Работает отлично.