Как сопоставить несколько портов 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 балансировщика нагрузки)

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

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

1 ответ

Решение

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

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