Что такое CDN и зачем он нужен

an abstract purple and black background with wavy lines

CDN (Content Delivery Network) — сеть узлов по разным городам и странам, которая отдаёт статику сайта с ближайшей к посетителю точки. Картинки, CSS, JS, шрифты, видео и другие файлы не едут каждый раз с одного origin-сервера через полмира, а берутся из кэша edge-узла. Результат: ниже latency, меньше нагрузка на хостинг, стабильнее отдача при всплесках трафика.

Коротко

  • CDN кэширует контент на edge-серверах ближе к пользователю.
  • Главные выигрыши: скорость, разгрузка origin, устойчивость к пикам, часто — базовая защита от DDoS.
  • Сильнее всего заметен эффект для аудитории далеко от дата-центра сайта и для «тяжёлой» статики.
  • Популярный входной вариант — Cloudflare; есть и CloudFront, Bunny, KeyCDN, российские и отраслевые сети.

Как работает CDN

Схема в упрощённом виде:

  1. Пользователь запрашивает https://cdn.example.com/style.css (или тот же домен через прокси CDN).
  2. DNS/anycast направляет запрос на ближайший edge-узел.
  3. Если файл есть в кэше и не протух — отдают сразу.
  4. Если нет — edge ходит на origin (ваш VPS/хостинг), забирает файл, кладёт в кэш и отдаёт клиенту.
  5. Следующие посетители из того же региона уже бьют в кэш.

Глобальные CDN держат PoP (points of presence) на многих континентах. Региональные сети плотнее покрывают одну страну или зону. Для сайта с аудиторией в РФ и origin в Европе/США edge «рядом» часто даёт ощутимый выигрыш по TTFB статики.

Что имеет смысл отдавать через CDN

  • изображения, CSS, JavaScript, шрифты;
  • видео и крупные загрузки (если тариф позволяет трафик);
  • публичные API-ответы с долгим TTL (осторожно с персональными данными);
  • целиком сайт за reverse-proxy (Cloudflare proxy), если устраивает модель «DNS через CDN».

Динамический HTML с cookies и личным кабинетом кэшируют точечно: либо bypass, либо короткие правила, иначе риск отдать чужую сессию. Статика — основной и безопасный слой.


Зачем это бизнесу и блогу

Скорость

Меньше RTT до сервера — быстрее отрисовка. Для origin в одном регионе и аудитории «по всей стране/миру» разница часто заметнее, чем от микрооптимизаций PHP. Пример: сайт на VPS в Европе, читатель в Сибири — CSS и картинки с edge ближе к нему грузятся заметно охотнее, чем каждый байт с Франкфурта.

Нагрузка на origin

Повторяющиеся запросы к /wp-content/uploads/, теме и плагинам не долбят диск и PHP на VPS. Хостинг тянет генерацию HTML и админку, статику разгребает CDN. На всплеске (пост завирусился, рассылка) это спасает от «упёрлись в канал/CPU».

Доступность и пики

Часть трафика обслуживается с edge. Даже если origin под нагрузкой, закэшированные страницы и ассеты могут продолжать отдаваться (зависит от настроек и того, что именно закэшировано).

DDoS и фильтры

Многие CDN сидят перед сайтом как reverse proxy и режут мусорный трафик, rate-limit, ботов. Это не серебряная пуля и не замена бэкапам и обновлениям, но объём «шумных» атак на мелкий VPS снижается. Уровень защиты зависит от тарифа и того, проксируете ли вы весь домен (оранжевое облако в Cloudflare) или только поддомен статики.


Cloudflare как практичный старт

Cloudflare часто выбирают из-за бесплатного тарифа, DNS и простого включения proxy. Общая схема:

  1. Зарегистрируйтесь на cloudflare.com и добавьте сайт.
  2. Cloudflare просканирует DNS; проверьте A/AAAA/CNAME/MX/TXT.
  3. На регистраторе смените NS на неймсерверы Cloudflare (или подключите домен иначе, если используете CNAME setup).
  4. Включите proxy (оранжевое облако) для веб-записей, которые должны идти через CDN.
  5. SSL/TLS: обычно Full (strict) при нормальном сертификате на origin (Let’s Encrypt).
  6. Кэш: правила Cache Rules / Page Rules для статики; для WordPress часто исключают /wp-admin, корзину, query string сессий.
  7. Опционально: минификация, Brotli/Gzip, HTTP/3, WAF на платных планах.

После смены NS подождите распространения DNS. Проверяйте сайт в режиме инкогнито, смотрите заголовки cf-cache-status (HIT/MISS/DYNAMIC) — так видно, что реально кэшируется.

Как выбрать провайдера

  • География PoP — где живут ваши пользователи.
  • Модель оплаты — фиксированный план vs трафик (ГБ/месяц).
  • Режим подключения — только pull CDN для static. или полный reverse proxy.
  • Функции — WAF, image resize, video, логи, purge API.
  • Поддержка и документы — как быстро чистить кэш и отлаживать MISS.

Известные имена: Cloudflare, Amazon CloudFront, Fastly, BunnyCDN, KeyCDN, Akamai (enterprise). Для WordPress-блога часто хватает Cloudflare Free + грамотные cache rules; для медиа-тяжёлых проектов смотрят трафик-ориентированные CDN.

Типичные ошибки

  • закэшировали HTML личного кабинета — утечки сессий;
  • нет purge после деплоя — посетители видят старый CSS/JS (решается versioning ?ver= или API очистки);
  • origin отдаёт Cache-Control: private, no-store на всю статику — edge не кэширует;
  • ждут чуда от CDN при 5 МБ неоптимизированных PNG и блокирующем JS — CDN не заменяет сжатие картинок;
  • проксируют почту/SSH через CDN без нужды — ломают доставку mail или доступ.

Частые вопросы

Что такое CDN?
Сеть серверов доставки контента, которая кэширует и отдаёт файлы с узла ближе к пользователю.

Зачем он нужен?
Ускорить загрузку, снизить нагрузку на хостинг, сгладить географию аудитории, часто — добавить слой фильтрации трафика.

Какой контент лучше отдавать?
В первую очередь статику: изображения, CSS, JS, шрифты, файлы. Динамику — по правилам и с осторожностью.

CDN заменяет хороший хостинг?
Нет. Медленный origin, тяжёлые плагины и огромные картинки CDN лишь частично маскирует. Оптимально: нормальный VPS/хостинг + CDN + сжатие ассетов.

С чего начать?
Поставьте сайт за Cloudflare (или подключите pull-CDN к каталогу uploads), проверьте HIT в заголовках, настройте SSL strict и исключения для админки.


CDN — не модная галочка, а инфраструктурный слой: ближе к пользователю, меньше нагрузка на origin, предсказуемее отдача статики. Для большинства сайтов на WordPress достаточно начать с одного провайдера, измерить до/после (PageSpeed, WebPageTest, TTFB статики) и уже потом усложнять правила кэша.

Источники и ссылки


Комментарии загружаются…