AWS Load Balancer, обслуживающий статический сайт и API - PullRequest
0 голосов
/ 01 ноября 2018

Прежде всего, извините за мое невежество, но есть концепция, которая мне не очень понятна в слове AWS ELB.

У меня есть сайт, развернутый в облачной среде, и API, работающий в экземпляре EC2.

Я хочу заархивировать, чтобы избежать использования двух доменов для обслуживания одинаковых данных.

Например, я хочу получить доступ через мой сайт, используя https://example.com/post, и вы увидите сам сайт (HTML из облачного фронта).

Но если вы пытаетесь получить доступ к https://example.com/post, передающему HTTP / HEADER Accept: application/json, вы сможете увидеть содержимое json с самого сервера API (экземпляр EC2).

Возможно ли это с помощью ELB? или мне нужно сделать какой-то трюк с экземпляром EC2, например, настроить nginx в качестве прокси-сервера и обслуживать содержимое облачного фронта, если заголовок отсутствует?

Заранее спасибо.

1 Ответ

0 голосов
/ 01 ноября 2018

Я не уверен, что это можно сделать с помощью заголовка accept . Но , если вы разделяете статический и динамический контент с разными корневыми путями, это довольно стандартное развертывание.

Так, например, если весь динамический контент имеет префикс /api (или, альтернативно, весь статический контент имеет префикс /static/), то вам потребуется:

  1. создать источник в облачном фронте, указывая на ELB / EC2
  2. создание статического источника в облачном фронте, указывающего на корзину S3.
  3. создайте поведение в облачном фронте для пути /api/ (убедитесь, что он ничего не кэширует и пропускает все заголовки и файлы cookie), он должен указывать на источник ELB / EC2.
  4. создает статическое поведение для корневого пути (по умолчанию), указывающего на источник s3, это поведение может иметь статическое содержимое кэша, где это применимо.

См. Это руководство для более подробной информации об этом подходе: https://aws.amazon.com/blogs/networking-and-content-delivery/dynamic-whole-site-delivery-with-amazon-cloudfront/

...