Мне было интересно, возможно ли следующее с предложениями AWS?
https://www.example.com/a/
-> обслуживается Apache в экземпляре A EC2
https://www.example.com/b/
-> обслуживается Apache в экземпляре B EC2
Чтобы уточнить, я не хочу, чтобы файлы в одном пути к каталогу находились на том же экземпляре сервера, что и файлы в другом пути к каталогу.
Я понимаю, что это возможно при использовании какого-либо прокси-сервера, но есть ли более простое решение с одним из предложений AWS.
EC2 Load Balancer , кажется, не позволяет коммутации на основе путей каталога. Маршрут 53 работает на уровне DNS, который не имеет информации о пути для возврата IP-адресов на основании этого.
amazon-web-services
apache2
Джозеф Ши
источник
источник
Host:
заголовки и не фильтрует фиктивный трафик. Кажется маловероятным, что они добавят какие-либо функции, которые вы запрашиваете, если просмотр заголовков - это слишком большая работа для них. К счастью, у них есть другие варианты.Ответы:
Используйте AWS Application Balancer , который выполняет маршрутизацию на основе пути . Вторая ссылка - это руководство, как это сделать.
Короче говоря, вы настроили свой ALB как обычно, затем выполните следующие действия (скопировано из учебника AWS):
источник
В дополнение к отличному ответу Тима, вы также можете достичь этого с CloudFront .
Во-первых, создайте свой дистрибутив , добавив источники для Экземпляра EC2 и Экземпляра EC2 B (которые также могут быть балансировщиками нагрузки, хостами не-AWS или даже корзинами S3).
Затем настройте правила поведения кэша для сопоставления / a / * и / b / * с соответствующими источниками.
То, имеет ли смысл использовать CloudFront для этой цели, будет зависеть от вашего приложения и необходимости CDN.
источник
/a*
и/b*
быть обработаны различными службами, различными счетами, различных регионах, или даже один путь , обрабатываемых что - то работает в АМС , а другой в другом месте. CloudFront имеет много вариантов использования, которые концептуально не требуют CDN вообще.