Мы хотим пересылать все запросы на domain.com/foo
в корзину S3, обслуживаемую Cloudfront. Идея в том, что наш домен используется, пока контент загружается из S3 / Cloudfront. У меня есть настройка Apache для обратных запросов прокси на /foo
таким образом:
<Location /foo>
RequestHeader set X-Forwarded-Proto "https"
ProxyPassReverseCookiePath / /foo
ProxyPass http://bar.cloudfront.net/
ProxyPassReverse http://bar.cloudfront.net/
</Location>
Однако когда я ударил domain.com/foo
Я получаю 403 Forbidden
из Cloudfront.
Я пробовал добавить заголовок RequestHeader set Host "bar.cloudfront.net"
, страница загружается, и я вижу содержимое в s3
bucket, но тогда домен, очевидно, является доменом CDN.
Обновить:
Я заменил URL-адрес облачного интерфейса в конфигурации Apache на общедоступный URL-адрес корзины s3, и он сработал, сохранив имя хоста. Я считаю, что это подтверждает проблему с Cloudfront.
Я добавил наше доменное имя как CNAME на CloudFront. Затем установите RequestHeader set Host
на наше доменное имя с /foo
. Это сохраняет имя хоста, но вызывает 400
ошибка CloudFront.
Cloudfront должен знать обо всех заголовках хоста, которые он собирается получить. Вы можете добавить domain.com как запись CNAME в Cloudfront. Это не приводит к тому, что трафик поступает в облачный интерфейс, но он идентифицирует этот заголовок хоста как связанный с вашей конкретной конфигурацией.