У меня есть среда elasticbeanstalk, которая использует nginx в качестве внешнего сервера для приложения node.js.
Среда использует эластичный балансировщик нагрузки, настроенный для приема подключений по TCP: 80 / SSL: 443 и пересылки обоих в экземпляр nginx по TCP: 8080. Я использую TCP / SSL + ProxyProtocol вместо HTTP / HTTPS для поддержки веб-сокетов.
AWS ELB не позволяет мне использовать URL-адрес для проверки работоспособности из балансировщика нагрузки при использовании TCP. Мне нужно использовать его, иначе он проверяет только, слушает ли nginx 8080, а не работает ли мое приложение node.js.
Я ищу идеи, чтобы заставить его работать. Цель состоит в том, чтобы ПОЛУЧИТЬ мой URL-адрес проверки работоспособности приложения node.js и заставить AWS ELB пометить экземпляр как неработоспособный, если статус URL-адреса проверки работоспособности не равен 200.
Моя текущая идея - попробовать воспользоваться поддержкой nginx для проверок работоспособности так что это идет против nodejs, и если он обнаруживает, что приложение неработоспособно, прекратите прослушивание соединений на 8080, чтобы ELB пометил экземпляр как нездоровый. Может быть, будет достаточно запустить команду, когда nginx обнаруживает исправные / нездоровые экземпляры.
Возможно ли это? Есть ли другие идеи?
Конфигурация проверки работоспособности балансировщика нагрузки не зависит от конфигурации конечной точки прослушивателя, поэтому вы можете без проблем настроить проверку работоспособности балансировщика нагрузки с HTTP: 8080 / index.html
.
Не уверен, о чем я думал ...