Мы развернули приложение (на основе 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, приложение всегда будет вести себя одинаково.
Надеюсь, это поможет :)