Что такое CDN и как он ускоряет сайт
CDN (Content Delivery Network) — это географически распределённая сеть серверов, которая доставляет контент пользователям с ближайшего к ним узла. Если ваш сервер находится в Москве, а пользователь — во Владивостоке, CDN позволяет отдать контент с сервера в Хабаровске или Владивостоке, сократив задержку в несколько раз.
Как работает CDN
Принцип работы CDN основан на нескольких ключевых технологиях:
Точки присутствия (PoP)
CDN состоит из множества серверов (edge-серверов), расположенных в дата-центрах по всему миру. Каждый такой дата-центр называется точкой присутствия — Point of Presence. Крупные CDN-провайдеры имеют сотни точек присутствия на всех континентах.
Когда пользователь запрашивает страницу, DNS-система CDN направляет его на ближайший edge-сервер. Выбор сервера основан на:
- Географической близости к пользователю
- Текущей загрузке серверов
- Состоянии здоровья серверов (health checks)
- Сетевой связности и latency
Кеширование контента
Edge-серверы хранят кешированные копии контента. При первом запросе CDN получает контент от origin-сервера (вашего основного сервера), сохраняет его в кеше и отдаёт пользователю. Последующие запросы обслуживаются из кеша без обращения к origin.
Типы контента, которые кешируются CDN:
| Тип контента | Кешируемость | Примечание |
|---|---|---|
| Изображения (JPG, PNG, WebP, AVIF) | Отлично кешируется | Большая часть трафика |
| CSS, JavaScript файлы | Отлично кешируется | Используйте хеши в именах |
| Шрифты (WOFF2, WOFF) | Отлично кешируется | Не забудьте CORS-заголовки |
| Видео и аудио | Хорошо кешируется | Учитывайте трафик |
| HTML-страницы | Условно кешируется | Зависит от динамичности |
| API документацию-ответы | Частично кешируется | Только для GET-запросов с коротким TTL |
Pull vs Push модели
Pull-модель — CDN забирает контент с origin-сервера при первом запросе и затем кеширует его. Это самая распространённая модель, простая в настройке.
Push-модель — вы заранее загружаете контент на CDN-серверы. Подходит для крупных файлов (видео, дистрибутивы), когда важно гарантировать доступность с первого запроса.
Преимущества CDN
1. Снижение задержки (latency)
Физическое расстояние между клиентом и сервером напрямую влияет на задержку. Скорость света в оптоволокне — около 200 000 км/с. Маршрут Москва — Владивосток (≈9 000 км) добавляет минимум 45 мс только на передачу сигнала в одну сторону. С учётом маршрутизации реальная задержка может составлять 100–150 мс в одну сторону.
CDN сокращает эту задержку до 5–20 мс, отдавая контент с ближайшего сервера. Проверить TTFB вашего сайта можно через инструмент проверки HTTP-заголовков enterno.io.
2. Снижение нагрузки на origin-сервер
CDN принимает на себя основную часть трафика, освобождая ваш сервер для обработки динамических запросов. При правильной настройке CDN может обрабатывать 90–95% всех запросов, не обращаясь к origin.
3. Защита от DDoS-атак
CDN-провайдеры имеют распределённую инфраструктуру с огромной пропускной способностью. Cloudflare, например, обрабатывает более 50 миллионов HTTP-запросов в секунду в нормальном режиме. При DDoS-атаке трафик поглощается сетью CDN, не достигая вашего origin-сервера.
4. Повышение доступности
Если один edge-сервер выходит из строя, трафик автоматически перенаправляется на следующий ближайший сервер. Многие CDN гарантируют SLA 99,99% и выше.
5. Автоматическая оптимизация
Современные CDN предоставляют дополнительные возможности:
- Автоматическая конвертация изображений в WebP/AVIF
- Минификация CSS и JavaScript на лету
- Сжатие Brotli/Gzip
- HTTP/2 и HTTP/3 поддержка
- Автоматические проверку SSL
Популярные CDN-провайдеры
Cloudflare
Самый популярный CDN с бесплатным планом. Помимо CDN, предоставляет DNS, WAF, защиту от DDoS, Workers (serverless) и множество других сервисов. Бесплатный план включает неограниченный трафик, базовый WAF и SSL.
Fastly
CDN с мгновенной инвалидацией кеша (purge за 150 мс). Используется GitHub, Reddit, Pinterest. Мощная платформа VCL для настройки edge-логики, но дороже Cloudflare.
AWS CloudFront
CDN от Amazon, глубоко интегрированный с экосистемой AWS. Идеальный выбор, если ваша инфраструктура уже в AWS. Поддерживает Lambda@Edge для serverless-логики на edge-серверах.
Selectel CDN и CDNvideo
Российские CDN-провайдеры с точками присутствия в России и СНГ. Могут быть предпочтительны для проектов, ориентированных на российскую аудиторию, из соображений законодательства и низкой задержки.
Как настроить CDN
Базовая настройка
- Зарегистрируйтесь у CDN-провайдера и добавьте ваш домен
- Измените DNS — направьте домен на CDN (обычно через изменение NS-записей или добавление CNAME)
- Настройте origin — укажите IP геолокацию или домен вашего сервера
- Настройте SSL — включите HTTPS на CDN (большинство провайдеров предлагают бесплатный сертификат)
- Проверьте заголовки — убедитесь, что
Cache-Controlнастроен правильно
Проверка работы CDN
После настройки убедитесь, что CDN работает корректно:
- Проверьте заголовок
ServerилиCF-Ray(для Cloudflare) через анализатор заголовков enterno.io - Убедитесь, что заголовок
X-Cacheпоказывает HIT для статических ресурсов - Сравните TTFB до и после подключения CDN
- Проверьте DNS Lookup через DNS Lookup — они должны указывать на CDN
Настройка кеширования
Правильная настройка кеширования — ключ к эффективности CDN:
# Пример настройки Cache-Control в nginx
location ~* \.(jpg|jpeg|png|gif|webp|avif|svg|ico|css|js|woff2)$ {
expires 365d;
add_header Cache-Control "public, max-age=31536000, immutable";
}
location ~* \.html$ {
add_header Cache-Control "no-cache";
}
Edge Computing — будущее CDN
Современные CDN выходят за рамки простого кеширования. Edge computing позволяет выполнять код прямо на edge-серверах, ближе к пользователю:
- Cloudflare Workers — serverless-функции на V8
- AWS Lambda@Edge — Node.js и Python на CloudFront
- Fastly Compute — WebAssembly на edge
- Deno Deploy — JavaScript/TypeScript на глобальной сети
Это позволяет персонализировать контент, выполнять A/B-тестирование, обрабатывать аутентификацию и трансформировать ответы без обращения к origin-серверу.
Типичные ошибки при использовании CDN
- Кеширование персонализированного контента — страницы с данными пользователя (корзина, личный кабинет) не должны кешироваться публично
- Отсутствие инвалидации кеша — после обновления контента старая версия может отдаваться из кеша
- Неправильные CORS-заголовки — шрифты и API-запросы могут блокироваться
- Игнорирование origin shield — без него каждый PoP обращается к origin отдельно при cache miss
- Mixed content — если CDN работает через HTTPS, а origin отдаёт HTTP-ссылки
Когда CDN не нужен
CDN может быть избыточен, если:
- Ваша аудитория сосредоточена в одном городе, и сервер находится там же
- Сайт полностью динамический без кешируемого контента
- Трафик минимален (менее 1 000 посетителей в день)
Однако даже в этих случаях бесплатный план Cloudflare может дать преимущества за счёт SSL, защиты от атак и DNS-ускорения.
Проверьте сами
Проверьте, использует ли ваш сайт CDN, с помощью анализатора HTTP-заголовков enterno.io — ищите заголовки CF-Ray, X-Cache, X-CDN.
Проверьте ваш сайт прямо сейчас
Проверить →