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, он отвечает и выполняет свою собственную логику для проверки работоспособности всех служб. Работает отлично.

Другие вопросы по тегам