
У меня есть сайт 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, так что это должно быть возможно, и я подозреваю, что я просто упускаю что-то очевидное.
Спасибо
решение1
Эту проблему можно решить, перенаправив заголовки Host в Origin, для этого есть настройка Behavior:Кэширование на основе выбранных заголовков запроса