Корневой домен за AWS CloudFront - PullRequest
0 голосов
/ 12 мая 2018

Согласно этой статье Amazon Я пытался заставить весь сайт WordPress работать за AWS CloudFront. Не только статические файлы, но и весь веб-сайт (это можно сделать с помощью настройки правильного поведения кэша). Однако, если вы используете пустой домен (example.com, без www), это кажется невозможным.

А именно, если источником дистрибутива CloudFront является example.com, и если вы поместите CNAME для example.com в том же дистрибутиве, CloudFront будет время от времени выдавать ошибку 403. После некоторого копания я обнаружил, что это ожидаемое поведение, так как с этой настройкой, , где origin и значения CNAME совпадают , CloudFront будет искать источник на себе и выдавать ошибку.

Так как можно использовать открытый домен и одновременно использовать CloudFront в качестве прокси?


Обновление:

Я реализовал решение origin.example.com, предложенное в комментариях. Я получаю сообщение об ошибке, но теперь оно работает.

  1. Источник в распределении CF: origin.example.com.
  2. CNAME в дистрибутиве CF: example.com.
  3. В настройках Cache Behavior в распределении CF заголовок Host занесен в белый список.
  4. В DNS origin.example.com указывает на IP-адрес сервера с записью A.
  5. В DNS example.com указывает на распределение CF с записью ALIAS-A.

Единственный недостаток, который у меня есть с этим обходным путем, заключается в том, что таким образом IP-адрес сервера-источника может быть обнаружен в сети. Сценарист может случайно получить доступ к origin.example.com, а истинный IP-адрес сервера открыт, поэтому вы склонны к DDoS. Одним из многих преимуществ прокси-сервера является то, что вы скрываете истинный IP-адрес сервера.

В настоящее время я использую Cloudflare в качестве прокси-сервера в основном по этой причине. В прошлом я подвергался массированной DDoS-атаке, и IP-адрес моего сервера был перенаправлен хостом, поэтому мне пришлось быстро спрятаться за Cloudflare и изменить статический IP-адрес сервера. Никаких головных болей с тех пор. Я хотел переключиться на CloduFront, но использование чистого домена кажется нежизнеспособным.

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Вам необходимо создать другое имя хоста в DNS, указывающее на экземпляр, например origin.example.com.Но экземпляру не нужно знать об этом имени.

Создайте источник CloudFront, используя это новое имя хоста в качестве имени домена источника, а затем в разделе «Поведение кэша» добавьте белый заголовок Host для пересылки в источник..

В DNS укажите example.com только на CloudFront.

Затем CloudFront будет использовать альтернативное имя для поиска фактического IP-адреса экземпляра, но сохранит исходныйимя хоста (example.com) в запросе, отправляемом на источник.

0 голосов
/ 12 мая 2018

При использовании CloudFront для кэширования всего веб-сайта используйте запись A-ALIAS как для открытого домена (example.com), так и для www (www.example.com), который разрешается в доменное имя CloudFront. Если вы используете SSL в CloudFront, убедитесь, что оба доменных имени присутствуют в сертификате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...