У меня такая же проблема. Я просто проверил TCP: 80 как временное решение (которое отлично работает).
Я предполагаю, что он выполняет HTTP-запрос GET по указанному пути "/" каждого из серверов и ищет успешный код HTTP-ответа (200). Можете ли вы успешно отправить GET-запрос на http: //
через браузер (или инструмент командной строки, такой как wget
или curl
).
Если запрос обслуживается успешно, второй вопрос, который следует спросить: настроили ли вы группу безопасности своих серверов таким образом, чтобы доступ к порту 80 был ограничен определенным адресом источника или подсетью? Если это так, вам нужно добавить группу безопасности ELB в фильтр. Группа всегда называется:
amazon-elb/amazon-elb-sg
, поэтому вы можете просто добавить ее в поле «Источник» в разделе «Группы безопасности» консоли AWS.
так что я только что получил HTTP-проверку, указав ее на статический html-файл (в отличие от php-страницы).
'/' не работает, несмотря на то, что возвращает действительный статус http при использовании curl и т. д. Однако '/file.html' проходит проверку работоспособности.
Я пришел к выводу, что ответ, помимо ответа HTTP 200, должен содержать определенные заголовки. У меня был HTTP 200, возвращенный с моего сервера tomcat, работающего на экземпляре, который не работает, но статическая страница html, обслуживаемая httpd (также возвращающая код 200), работает нормально. Глядя на заголовки, одно из немногих отличий заключалось в том, что заголовок tomcat не содержал тип содержимого. Не знаю, почему это может иметь значение.
Вы должны использовать определенное доменное имя на своем веб-сервере. Или вы настраиваете свой веб-сервер для удовлетворения любого запроса (привязка *) или следуете документации .