Согласно этой статье Amazon Я пытался заставить весь сайт WordPress работать за AWS CloudFront. Не только статические файлы, но и весь веб-сайт (это можно сделать с помощью настройки правильного поведения кэша). Однако, если вы используете пустой домен (example.com
, без www
), это кажется невозможным.
А именно, если источником дистрибутива CloudFront является example.com
, и если вы поместите CNAME для example.com
в том же дистрибутиве, CloudFront будет время от времени выдавать ошибку 403. После некоторого копания я обнаружил, что это ожидаемое поведение, так как с этой настройкой, , где origin и значения CNAME совпадают , CloudFront будет искать источник на себе и выдавать ошибку.
Так как можно использовать открытый домен и одновременно использовать CloudFront в качестве прокси?
Обновление:
Я реализовал решение origin.example.com
, предложенное в комментариях. Я получаю сообщение об ошибке, но теперь оно работает.
- Источник в распределении CF:
origin.example.com
.
- CNAME в дистрибутиве CF:
example.com
.
- В настройках Cache Behavior в распределении CF заголовок
Host
занесен в белый список.
- В DNS
origin.example.com
указывает на IP-адрес сервера с записью A.
- В DNS
example.com
указывает на распределение CF с записью ALIAS-A.
Единственный недостаток, который у меня есть с этим обходным путем, заключается в том, что таким образом IP-адрес сервера-источника может быть обнаружен в сети. Сценарист может случайно получить доступ к origin.example.com
, а истинный IP-адрес сервера открыт, поэтому вы склонны к DDoS. Одним из многих преимуществ прокси-сервера является то, что вы скрываете истинный IP-адрес сервера.
В настоящее время я использую Cloudflare в качестве прокси-сервера в основном по этой причине. В прошлом я подвергался массированной DDoS-атаке, и IP-адрес моего сервера был перенаправлен хостом, поэтому мне пришлось быстро спрятаться за Cloudflare и изменить статический IP-адрес сервера. Никаких головных болей с тех пор. Я хотел переключиться на CloduFront, но использование чистого домена кажется нежизнеспособным.