У меня есть сайт Wordpress, созданный по адресу site.example.com
и я пытаюсь настроить распространение CloudFront в качестве обратного прокси, чтобы снизить нагрузку на мой исходный сервер.
Раньше я использовал CloudВспышка и конфигурация была очень простой, поскольку CloudFlare знал IP-адрес исходного сервера, он мог просто отправлять запросы на этот IP-адрес вместе с SNI, и запросы попадали в нужное место.
например
site.example.com@[CloudFlare IP Address] -> CloudFlare -> site.example.com@[Origin IP Address]
Однако кажется ОблакоФронт работает немного иначе, он ожидает, что исходный сервер будет доменным именем, а не IP-адресом, поэтому я подозреваю, что, как только я изменю свой DNS, чтобы указать site.example.com
к моему доменному имени раздачи CloudFront, тогда CloudFront больше не сможет получить доступ к источнику, так как он будет указывать на себя
Теперь, чтобы преодолеть это на обычном веб-сервере, я бы просто создал вторую запись DNS, например cf-site.example.com
и на веб-сервере настройте его для обслуживания того же контента, что и site.example.com
CloudFront сможет получить доступ к Origin по адресу cf-site.example.com
и мои клиенты будут заходить на сайт как обычно.
Однако с Wordpress, если вы попытаетесь сделать это, как только вы войдете на сайт cf-site.example.com, он увидит, что это имя не соответствует адресу сайта, и немедленно вернет 301, который перенаправляет вас на адрес сайта, в Это дело site.example.com
. Это вызывает бесконечный цикл и разрывает сайт.
Я нашел в Интернете множество руководств по использованию CloudFront с Wordpress, так что это должно быть возможно, и я подозреваю, что просто упускаю что-то очевидное.
Спасибо
Проблема может быть решена путем перенаправления заголовков Host в Origin, для этого есть настройка Behavior: Кэш на основе выбранных заголовков запросов