CDN (Content Delivery Network)

Сеть серверов в разных городах, которая хранит копии файлов сайта и отдает их посетителю с ближайшего сервера.

CDN (Content Delivery Network, сеть доставки контента) — распределенная сеть серверов в разных городах и странах. Она хранит копии файлов сайта — изображений, видео, скриптов, стилей, документов — и отдает каждому посетителю из ближайшей точки. Посетитель из Новосибирска получает картинку с сервера в Новосибирске, а не из Москвы, — быстрее и без нагрузки на основной сервер сайта.

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

  1. Адрес для файлов, например cdn.example.ru, указывает на сеть CDN.
  2. Через DNS или маршрутизацию посетитель попадает на ближайший к нему сервер сети (edge).
  3. Если файла там еще нет, сервер CDN один раз забирает его с основного сервера и сохраняет.
  4. Следующие посетители из этого региона получают файл сразу из копии.

Сколько хранить копию, CDN понимает из заголовков Cache-Control, которые отдает сайт; подробнее — в термине «Кэширование». Обновленный файл можно принудительно удалить из всех копий (purge) или выпустить под новым именем.

Что дает CDN

  • Скорость. Меньше расстояние — меньше задержка. Особенно заметно для видео, больших изображений и пользователей далеко от сервера.
  • Разгрузка сервера. Основной сервер обслуживает только динамические запросы, а тяжелые файлы отдает сеть.
  • Устойчивость к пикам. Наплыв посетителей распределяется по сотням серверов.
  • Защита. Крупные CDN поглощают атаки DDoS и скрывают адрес основного сервера.

Что кэшировать, а что нет

Лучше всего CDN подходит для статики, одинаковой для всех: картинок, шрифтов, скриптов, видео, PDF. Динамические страницы и все персональное — личный кабинет, корзина, данные клиента — кэшировать нельзя, иначе один посетитель может увидеть чужие данные. Такие запросы CDN передает на основной сервер, часто ускоряя только само соединение.

CDN и безопасность

CDN работает по TLS и хранит сертификат сайта, то есть видит трафик в расшифрованном виде. Поэтому провайдера выбирают с учетом требований к данным: для государственных и банковских систем важно, где расположены серверы и кому принадлежит сеть. На российском рынке работают и отечественные, и международные провайдеры.

Нужен ли CDN

Если аудитория сосредоточена в одном регионе, а на сайте немного тяжелых файлов, хорошо настроенный сервер с Nginx и правильными заголовками кэширования справится не хуже. CDN окупается при географически широкой аудитории, видео и больших каталогах изображений, а также как защита от атак.