ALB для сопоставления нескольких контекстных путей на одном общем порту (tomcat) - PullRequest
0 голосов
/ 12 ноября 2018

В настоящее время у нас есть развертывания на основе Tomcat и один сервер Apache для управления несколькими контекстными путями на одном порту (конфигурация v-host)

Например,

ProxyPassMatch /test(.) http://127.0.0.1:7077/test$1*

ProxyPassMatch /test2(.) http://127.0.0.1:7077/test2$1*

и т. Д.

Теперь мы переходим к ALB в AWS и хотим отобразить все эти контекстные пути в ALB, представленные в файле конфигурации Apache.

Мы создали ALB -> Прослушиватель на 80 портов -> Цель создана с необходимым экземпляром с портом 7077 -> Проверка работоспособности пройдена

Правило слушателя:

Контекстный путь / тест -> Переадресация на целевую группу порта 7077

Контекстный путь / test2 -> Переслать в целевую группу порта 7077

Но во время тестирования он показывает 502 Bad Gateway, когда мы выключаем Apache и тестируем ALB

Есть ли решения?

1 Ответ

0 голосов
/ 14 декабря 2018

Application Load Balancer не может переписать путь, идущий к цели, как вы можете с помощью обычного обратного прокси.

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions говорит:

Шаблон путииспользуется для маршрутизации запросов, но не изменяет их.Например, если правило имеет шаблон пути / img / *, правило будет перенаправлять запрос на /img/picture.jpg указанной целевой группе в качестве запроса на /img/picture.jpg.

Tomcat:

Возможно, приложение tomcat может прослушивать несколько путей с конфигурацией в context.xml или server.xml.На этот вопрос есть несколько предложений, но, если у вас несколько контекстов, приложение запускается дважды и занимает вдвое больше памяти.

...