Как работает CDN, как CloudFlare?

23

Что я понимаю до сих пор:

  • Вы сохраняете свой текущий веб-хостинг, но вы меняете DNS-серверы для вашего сайта с DNS-серверов вашего текущего хостинга на DNS-серверы CloudFlare.
  • CloudFlare обслуживает ресурсы вашего сайта из нескольких центров обработки данных по всему миру.

Теперь я хотел бы узнать технические детали этого механизма. Вот некоторые из вопросов, которые у меня есть:

  1. Обладает ли CloudFlare прокси-сервером кеша? Скажем, у меня есть куча изображений на страницах моего сайта. Обладает ли CloudFlare кэшированием всех этих изображений в каждом из их центров обработки данных и затем обслуживает их из этих центров обработки данных?

  2. Какие ресурсы сайта затронуты? Только статичные? Как насчет самих веб-страниц (HTML-документы)? Что делать, если страницы динамически генерируются моим сервером? Каким образом CloudFlare всегда обеспечивает самую актуальную версию страницы?

  3. Как насчет запросов POST на мой сайт (например, посетитель загружает данные через Ajax, которые затем сохраняются в базе данных)? Этот материал должен быть выполнен на моем сервере. Итак, CloudFlare не (и не может) повысить производительность этого процесса, верно? Итак, CloudFlare просто передает запрос Ajax на оригинальный веб-хостинг?

Шиме Видас
источник

Ответы:

23
  1. Да, это кеширующий обратный прокси.
  2. "Это зависит". По умолчанию кэшируются только такие вещи, как изображения и CSS, но вы можете установить уровень кэширования для каждой зоны и задать правила страницы, чтобы переопределять то, что кэшируется или не должно кэшироваться. Статический HTML может быть принудительно кэширован правилом страницы, но динамическое содержимое явно не может. Исключением здесь является то, что у вас есть бизнес-план или план предприятия или регистрация через определенных партнеров по хостингу, когда вы получаете доступ к технологии Railgun, благодаря которой CloudFlare будет получать только информацию, которая изменилась на странице, даже если она динамическая. Если вы настроили CloudFlare на кеширование всего, вам нужно контролировать время ожидания кеша либо с помощью заголовков кеша в источнике, и / или устанавливая TTL кеша в своей зоне в пользовательском интерфейсе CloudFlare.
  3. Сообщения POST всегда должны отправляться в источник, поэтому CloudFlare просто передает их напрямую. Вы все равно должны получить повышение производительности, потому что CloudFlare использует anycast для обслуживания DNS и HTTP из ближайшего центра обработки данных.

Полное раскрытие: я работаю на CloudFlare.

Джеймс О'Горман
источник
5

Просто чтобы добавить немного большей ясности:

На Quora есть довольно хорошая статья о том, как работает CloudFlare .

Какие ресурсы сайта затронуты? Только статичные? Что CloudFlare кэширует по умолчанию .

«Обладает ли CloudFlare прокси-сервером для кеширования? Скажем, у меня есть несколько изображений на страницах моего сайта. Кеширует ли CloudFlare все эти изображения в каждом из своих центров обработки данных и затем обслуживает их из этих центров обработки данных?»

Вы можете расширить наше кэширование за пределы статического содержимого с помощью PageRules.

Примечание. Мы не будем кэшировать сторонние ресурсы, которые находятся на вашем сайте (Flickr, Google, Facebook и т. Д.).

damoncloudflare
источник
1

Чтобы добавить к ответу Дэймона:

Вы можете найти несколько полезных видеоуроков по настройке наиболее популярных / рекомендуемых правил страницы с CloudFlare здесь:

cloudflare.com/features-page-rules

Кроме того, если вы максимально исчерпали доступные правила страницы для своего текущего плана, вы скоро сможете приобрести дополнительные правила без изменения планов.

RyanK
источник