Как сопоставить несколько портов 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.