Как работает проверка работоспособности Amazon ELB?

Как работает проверка работоспособности Amazon ELB?

У меня возникли проблемы с настройкой ELB для моих серверов.

Я запускаю 2 микроэкземпляра с одинаковой конфигурацией и пытаюсь выполнить балансировку нагрузки. Однако они никогда не проходят проверку работоспособности (HTTP порт 80 путь:"/").

  • Пинг на сайте в порядке. Telnet на 80 тоже.

Как работает проверка здоровья? Я действительно что-то делаю не так?

РЕДАКТИРОВАТЬ:

  • Как прямой доступ через браузер, так и GET (через curl) работают корректно (статус 200)

решение1

У меня та же проблема. Я просто проверяю TCP:80 как временное решение (что отлично работает).

решение2

Я пришел к выводу, что ответ, помимо того, что это ответ HTTP 200, должен содержать определенные заголовки. У меня был HTTP 200, возвращенный моим сервером tomcat, работающим на экземпляре, который не работал, но статическая html-страница, обслуживаемая httpd (также возвращающая код 200), работала нормально. Глядя на заголовки, одним из немногих отличий было то, что в заголовке tomcat не было content-type. Не уверен, почему это имеет значение.

решение3

Я предполагаю, что он выполняет HTTP GET-запрос к указанному пути "/" каждого из серверов и ищет успешный код ответа HTTP (200). Можете ли вы успешно сделать GET-запрос http://<backend_server_IP>:80/через браузер (или инструмент CLI, такой как wgetили curl).

Если запрос успешно обработан, второе, что нужно спросить: настроили ли вы группу безопасности ваших серверов так, чтобы доступ к порту 80 был ограничен определенным исходным адресом или подсетью? Если да, вам нужно добавить группу безопасности ELB в фильтр. Группа всегда называется:

amazon-elb/amazon-elb-sg

Поэтому вы можете просто добавить это в поле «Источник» в разделе «Группы безопасности» консоли AWS.

решение4

поэтому я просто заставил проверку http работать, указав ей статический HTML-файл (а не PHP-страницу).

'/' не работает, несмотря на то, что возвращает допустимый статус http при использовании curl и т. д. Однако '/file.html' проходит проверку работоспособности.

Связанный контент