Назад | Перейти на главную страницу

Как сопоставить несколько портов AWS LoadBalancer с одним портом экземпляра?

У меня такая настройка: два порта на моей карте балансировщика нагрузки на один порт моего экземпляра (экземпляр проверяет HTTP-заголовок и выдает HTTP-перенаправление на сайт HTTPS для любого запроса, отличного от HTTPS). На панели управления AWS отображается:

LB Proto| LB Port| Inst Proto| Inst Port| SSL Cert
---------------------------------------------------
HTTP    | 80     | HTTP      | 8080     | N/A   
HTTPS   | 443    | HTTP      | 8080     | my_ssl_cert 

В моем случае я могу проверить входящий трафик следующим образом:

sudo ngrep -q -d eth0 -W byline port 8080

Это успешно: (https на балансировщик нагрузки)

curl -k https://111.111.111.111/

но это не удается: (http на балансировщик нагрузки)

curl     http://111.111.111.111/

(где 111.111.111.111 - IP-адрес балансировщика)

Curl останавливается и истекает время ожидания, и я никогда не вижу активности на порту 8080 на моем экземпляре с ngrep (я вижу, когда отправляю первый запрос).

Что происходит? Почему мой балансировщик нагрузки не пересылает ЛЮБОЙ трафик, полученный через порт 80, на порт 8080 моего экземпляра?

Как подтверждено в комментариях, ваша проблема заключалась в том, что ваша группа безопасности Load Balance не была настроена для разрешения входящих запросов на порт 80.