Чи пропонує AWS спосіб маршрутизації трафіку HTTPS до двох різних екземплярів EC2 на основі шляху до каталогу?


10

Мені було цікаво, чи можливе наступне з пропозиціями AWS?

https://www.example.com/a/-> обслуговується Apache на екземплярі A2 EC2

https://www.example.com/b/-> обслуговується Apache за інстанцією EC2 B

Для уточнення, я не хочу, щоб файли в одному шляху до каталогу були на тому ж екземплярі сервера, що і файли під іншим шляхом до каталогу.

Я розумію, що це можливо з допомогою проксі-сервера, але чи є більш просте рішення з одним із пропозицій AWS.

EC2 Load Balancer , здається, не дозволяє комутації на основі шляхів каталогу. Маршрут 53 працює на рівні DNS, який не має інформації про шлях до повернення IP-адрес на основі цього.


Балансир завантаження EC2 настільки дурний, що він не читає Host:заголовки і не фільтрує фіктивний трафік. Мабуть, вони не додадуть жодних функцій, як ви запитуєте, якщо перегляд заголовків для них занадто великий. Милосердно у них є інші варіанти.
пташенята

Відповіді:


29

Скористайтеся програмою AWS Balancer Loadler , яка робить маршрутизацію на основі шляху . Це друге посилання - це підручник, як це зробити.

Коротше кажучи, ви встановлюєте ALB як звичайний, після чого виконайте наступні кроки (скопійовані з підручника AWS):

  • На вкладці Слухачі використовуйте стрілку для перегляду правил для слухача, а потім виберіть Додати правило . Вкажіть правило так:

  • Для назви цільової групи виберіть другу створену вами цільову групу.

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

  • Виберіть Зберегти .


Дякую! Я спочатку перевірив регулятор завантаження програм EC2, пройшов майстра, але ніколи його не створив. Майстер не дав варіанту шляху. Як вказував підручник, спочатку потрібно створити його, а потім відредагувати правила.
Йосиф Ших

9

Окрім відмінної відповіді Тіма, ви також можете досягти цього за допомогою CloudFront .

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

Потім встановіть правила поведінки кеша, щоб відобразити / a / * та / b / * на відповідні джерела.

Чи має сенс використовувати CloudFront для цієї мети, залежатиме від вашої програми та потреби в CDN.


4
Це також може бути застосовано, якщо ви хочете /a*і /b*щоб вас обробляли різні служби, різні облікові записи, різні регіони або навіть один шлях, яким обробляється щось, що працює всередині AWS, а інше в іншому місці. CloudFront має багато випадків використання, які концептуально взагалі не вимагають CDN.
Майкл - sqlbot
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.