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

Как решить проблему перенаправления AWS ELB

Мы развернули приложение (на основе Tomcat) в экземпляре AWS EC2. Я могу получить доступ к сайту напрямую, и я могу получить к нему доступ через внутренний ELB. Однако я больше не могу получить к нему доступ через внешний ELB. Я получаю следующую ошибку:

The page isn’t redirecting properly

An error occurred during a connection to my domain.

This problem can sometimes be caused by disabling or refusing to accept cookies.

Я пробовал очистить файлы cookie и кешированные данные. Никаких кубиков.

У меня нет логов от ELBv2. Есть предположения?

Работает на Amazon Linux 2, последняя версия tomcat 7.

Я подозреваю, что ваше приложение просматривает заголовок «HTTP Host» и ожидает что-то, например host.example.com, и если он не видит, что пытается перенаправить туда.

Или приложение пытается перенаправить на HTTPS-версию сайта? Если вы завершаете HTTPS на балансировщике нагрузки, а затем HTTP (без SSL) на EC2, приложение может не понимать, что запрос изначально был сделан по HTTPS. Он может попытаться перенаправить на безопасную версию и зайти в цикл перенаправления. Или что-то вроде того.

Лучший подход - полностью игнорировать HTTP-хост и HTTP против HTTPS протокол в приложении и только относительные ссылки и относительные перенаправления. Таким образом, не имеет значения, какое DNS-имя ELB или протокол ELB, приложение всегда будет вести себя одинаково.

Надеюсь, это поможет :)