AWS Cloud Front, как запросить источник, используя правильный URL-адрес

AWS Cloud Front, как запросить источник, используя правильный URL-адрес

Я пытаюсь кэшировать веб-сайт, который находится на EC2, у него есть URL uncached.xyz.com, поэтому я создал Cloud Front с указанием источника uncached.xyz.comи создал запись, xyz.comкоторая указывает на распределение Cloud Front, названное примерно так d111111abcdef8.cloudfront.net:

Но вся информация, возвращаемая сервером (например, URL-адреса кнопок), не является относительной и включает в себя URL-адрес запроса, что означает, что если Cloudfront обращается к источнику с помощью uncached.xyz.com, содержимое, возвращаемое CDN (для любого используемого cname), будет содержать URL-адрес источника вместо URL-адреса, используемого для доступа к дистрибутиву CloudFront, что выглядит так, как <a href="uncached.xyz.com/info"><a>и должно быть <a href="xyz.com/info"><a>.

кратко: др

CloudFront должен вернуть:
<a href="xyz.com/info"><a> (это URL-адрес, к которому был получен доступ и который указывает на распределение CDN (кэшированный веб-сайт)).
Но он возвращает:
<a href="uncached.xyz.com/info"><a> (это URL-адрес источника, который содержит данные для кэширования (веб-сайт)).

Есть ли способ «подделать» сервер Origin, заставив его думать, что URL-адрес, используемый для доступа к нему, принадлежит дистрибутиву CloudFront, а не настроенному URL-адресу источника?

Упрощенная версия того, что использую я.

пример архитектуры

решение1

Есть несколько способов сделать это:

Установите заголовки X-Forwarded-Host и X-Forwarded-Proto в конфигурации Cloudfront для запросов источника, чтобы передавать требуемую информацию в бэкэнд-приложение. На бэкэнде используйте заголовки, если они есть, для генерации контента на страницах.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto

Другой подход может заключаться в настройке lambda@edge, который обрабатывает исходный ответ и заменяет содержимое при необходимости.

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-updating-http-responses.html

Связанный контент