Учитывая следующий ALB dns:
my-alb-dns.com
и следующие контейнеры, работающие в ECS:
container-a
container-b
Я настроил его таким образом, чтобы я мог маршрутизировать трафик, проходящий через ALB через переписывание пути к соответствующему сервису в моем кластере ECS:
my-alb-dns.com:80/container-a/my/endpoint -> container-a:8080/my/endpoint
my-alb-dns.com:80/container-b/my/endpoint -> container-b:8080/my/endpoint
Это отлично работает (с использованием nginx), но я спрашивал себя, действительно ли использование дополнительного сервера nginx необходимо для перезаписи пути. Есть ли планы по расширению функциональности ALB за счет настраиваемых правил перезаписи пути? Пока ничего не нашел об этом в документации.
Я также посмотрел на Ламда @ Edge но мне кажется немного излишним вводить CloudFront с Lamda только для простого переписывания (которое, для сравнения, занимает строку конфигурации nginx 1).
Есть ли какие-либо передовые методы в этом отношении, или я должен продолжать надеяться, что AWS внедрит это в отдаленном будущем и просто будет придерживаться моего текущего решения nginx?
ALB не поддерживает запросы на изменение, и я не знаю о каких-либо планах по включению такой функции. Это огромная банда червей, поэтому я не удивлен, что AWS пока оставляет ее в покое. Придерживайтесь nginx (или его эквивалента, например haproxy) или измените свое приложение, чтобы оно принимало /container-X
префикс в пути запроса.
Я использую маршрутизацию на основе хоста вместо маршрутизации на основе пути в аналогичных ситуациях, если ваше приложение может ее поддерживать.
например
service1.mydomain.com -> myalb.com -> tg1 -> container1:8000
service2.mydomain.com -> myalb.com -> tg2 -> container2:8001
Ваша заявка позвонит
service1.mydomain.com
вместо того
mydomain.com/service1