Маршрутизация на основе пути к облачному фронту и ec2 - PullRequest
0 голосов
/ 30 января 2019

Таким образом, в настоящее время у нас есть два экземпляра ec2 (скажем, A и B) и облачный фронт.

Если пользователь заходит на www.appdomain.com/app, он должен быть перенаправлен на страницу SPA облачного фронта.Однако, если пользователь заходит на www.appdomain.com, его следует направить в экземпляр A EC2, а если пользователь заходит на www.appdomain.com/api, - в экземпляр B. EC2.

Все эти приложениядолжен быть в том же домене.

Теперь мы узнали, как устанавливать правила пути, используя балансировщик нагрузки приложения, но хотели бы также узнать, как установить его в облачный фронт.

Обновление:Итак, в заключение, вопрос в том, как мы можем направить / приложение к облачному фронту / и / api к ec2.

1 Ответ

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

Все эти приложения должны находиться в одном домене.

В этом случае каждый запрос для этого домена должен проходить через CloudFront first .

Ваша DNS-запись должна указывать на CloudFront (не ALB), а CloudFront будет отвечать за направление запроса к соответствующей цели - к экземпляру EC2 через ALB, к корзине S3, куда угодновам нужно выполнить запросы - и каждая из этих вещей называется контентом origin .

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

Как только ваш DNS будетизменено так, чтобы оно указывало на CloudFront, все запросы сначала идут туда и передаются следующему сервису, если только CloudFront не имеет кэшированную копию запрошенного объекта - в этом случае CloudFront будет обслуживать его из своего кэша, и ничего не будет отправленок началу координат.

Вы не можете направить маршрут от ALB к CloudFront, но вы можете направить маршрут от CloudFront к ALB.

Невозможно подразделить домен на несколько разных источников контента, основанных на путях, без использования обратного прокси-сервера, который может сопоставлять пути и извлекать контент от имени запрашивающей стороны - HTTP и DNS don 'не поддерживает такую ​​функциональность.CloudFront, в дополнение к предоставлению услуги CDN, также является обратным прокси-сервером.

ALB, конечно, также является обратным прокси-сервером, но не поддерживает столько разных типов источников контентакак CloudFront - ALB поддерживает только экземпляры EC2, серверы в вашем центре обработки данных (в этом случае ALB должен иметь VPN-путь для доступа к ним) и Lambda функционируют как источники контента.CloudFront может использовать буквально все что угодно в качестве источника контента, если он говорит по HTTP / HTTPS и доступен через Интернет.(Чтобы выбрать несколько случайный пример, CloudFront может даже использовать службу от другого поставщика - например, хранилище Google Cloud Storage - в качестве источника контента, если это было чем-то, что вам нужно было сделать по любой причине ... потому что этодоступны через HTTP через общедоступный Интернет.)

...