Маршрутизация трафика на разные микросервисы, работающие на экземпляре 3 aws ecs ec2 с балансировщиком нагрузки приложений - PullRequest
0 голосов
/ 16 января 2019

Я новичок в микросервисе. Моя команда разрабатывает новое приложение, и в нем будет около 20 микросервисов, распространяющихся на 3 экземпляра ecs ec2. Каждый из этих Docker-контейнеров будет прослушивать любой из старших портов (хост-порт) и перенаправлять запрос на порт 80 Docker

.

Мое требование - иметь domain.com/core >> должен направлять в «основной» докер-контейнер домен / клиент >> должен направлять в докерский контейнер "клиент"

Я тестирую с балансировкой нагрузки приложения, так что правило domain.com/core будет перенаправлено в соответствующую целевую группу, и эта целевая группа будет зарегистрирована соответствующим старшим портом (портом хоста) контейнера Docker.

Но это не работает, как я ожидал

Я предполагаю, что когда вызывается domain.com/core, он направляется в соответствующий контейнер докера, но вместо того, чтобы заглядывать в корень doc микросервиса "core", он фактически ищет каталог "core" под корнем doc этого micorservice. Любое решение для этого?

1 Ответ

0 голосов
/ 16 января 2019

Да. Распространено размещать балансировщик нагрузки между ALB и вашими службами докеров. С nginx конфигурация будет выглядеть примерно так: https://serverfault.com/questions/562756/how-to-remove-the-path-with-an-nginx-proxy-pass

Если вы хотите избежать размещения еще одного уровня балансировки нагрузки перед вашим приложением, вы можете попробовать решить его на прикладном уровне, просто передайте все свои службы с префиксом / core или / customer.

К сожалению, ALB не поддерживает переписывание URL.

Это также одна из причин того, почему люди часто используют субдомены вместо путей URL;) customer.domain.com core.domain.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...