Does AWS offer a way to route HTTPS traffic to two different EC2 instances based on directory path?

I was wondering if the following is possible with AWS offerings?

https://www.example.com/a/ -> served by Apache on EC2 Instance A

https://www.example.com/b/ -> served by Apache on EC2 Instance B

To clarify, I do not want files under one directory path to be on the same server instance as files under the other directory path.

I understand this may be possible with a proxy of some sort, but is there an easier solution with one of AWS offerings.

The EC2 Load Balancer does not seem to allow switching based on directory path. Route 53 works at the DNS level, which does not have path information to return IPs based on that.

10
задан 10 January 2018 в 04:40
2 ответа

Используйте балансировщик нагрузки приложений AWS , который выполняет маршрутизацию на основе пути . Вторая ссылка представляет собой учебное пособие, как это сделать.

Короче говоря, вы настраиваете свой ALB как обычно, а затем выполняете следующие действия (скопированные из учебного пособия AWS):

  • На вкладке Listeners , используйте стрелку, чтобы просмотреть правила для слушателя, а затем выберите Добавить правило . Задайте правило следующим образом:

  • Для Имя целевой группы выберите вторую целевую группу, которую вы создали.

  • Для Шаблон пути укажите точный шаблон, который будет использоваться для пути маршрутизация на основе (например, / img / *). Для получения дополнительной информации см. Правила прослушивателя.

  • Выберите Сохранить .

29
ответ дан 2 December 2019 в 21:57

В дополнение к отличному ответу Тима, вы также можете добиться этого с помощью CloudFront .

Во-первых, создайте свой дистрибутив , добавив источники для EC2 Instance A и EC2 Instance B (которые также могут быть балансировщиками нагрузки, хостами, отличными от AWS, или даже сегментами S3).

Затем настройте правила поведения кеша для сопоставления / a / * и / b / * с соответствующими источниками.

Имеет ли смысл использовать CloudFront для этой цели, будет зависеть от вашего приложение и необходимость в CDN.

9
ответ дан 2 December 2019 в 21:57

Теги

Похожие вопросы