CDN (Content Delivery Network, сеть доставки контента) — распределённая инфраструктура серверов-посредников, которые хранят копии статических и динамических ресурсов веб-сайта ближе к конечным пользователям. Когда браузер запрашивает изображение или CSS-файл, CDN перенаправляет запрос на ближайший к пользователю узел (PoP, Point of Presence), а не на исходный сервер.
Как работает CDN
Принцип работы строится на кэшировании. При первом запросе CDN-узел запрашивает ресурс у origin-сервера, сохраняет копию и отдаёт пользователю. Последующие запросы на тот же ресурс обслуживает уже локальный кэш без обращения к исходному серверу. Время жизни кэша задаётся через HTTP-заголовок Cache-Control: max-age или Expires.
Маршрутизация трафика осуществляется через DNS Anycast или HTTP-редиректы. При DNS Anycast один IP-адрес объявляется из десятков точек присутствия, и BGP-протокол направляет запрос на географически ближайший узел. Крупные CDN-провайдеры поддерживают 100–300 PoP по всему миру: Cloudflare — 310+, Akamai — 4000+, Fastly — 90+.
Помимо статики (изображения, CSS, JS, шрифты), современные CDN ускоряют динамический контент через постоянное TCP-соединение к origin и применение HTTP/2 и HTTP/3 с мультиплексированием. Ряд провайдеров поддерживает Edge Computing: запускает serverless-функции прямо на CDN-узле, минуя origin полностью.
История
Идею CDN реализовала компания Akamai в 1998 году: профессора MIT Том Лейтон и Дэнни Льюин разработали алгоритмы маршрутизации, позволявшие равномерно распределять нагрузку по тысячам серверов. В 1999 году CDN впервые масштабно использовали для трансляции событий Super Bowl. В 2010-х годы барьер входа снизился с появлением Cloudflare (2009), Amazon CloudFront (2008) и других — CDN стал доступен малому бизнесу за $0–$20/месяц.
Виды CDN
- Push CDN — файлы загружаются на CDN вручную или через API; подходит для больших статических файлов, которые редко меняются.
- Pull CDN — CDN самостоятельно забирает файлы с origin при первом запросе; проще в настройке, подходит для большинства сайтов.
- Reverse proxy CDN — CDN стоит перед origin как прокси-сервер, фильтрует трафик и защищает от DDoS.
- Video CDN — оптимизирован для HLS/DASH стриминга, поддерживает адаптивный битрейт.
CDN и хостинг
Для хостинговых проектов CDN решает три задачи: снижает задержку для зарубежных пользователей, уменьшает исходящий трафик с сервера (экономия на тарифе), защищает от DDoS-атак на L3/L4 уровне. При выборе CDN для VPS или выделенного сервера стоит учитывать наличие PoP в целевых регионах, поддержку HTTPS и автоматических сертификатов Let's Encrypt, возможность настройки кастомных правил кэширования.
Типичная конфигурация: Nginx на origin + Cloudflare Free Plan. Для интернет-магазинов с динамическим контентом исключайте из кэша страницы корзины и кабинета пользователя через правила Cache-Control: no-store или URL-исключения в панели CDN.
Ключевые отличия от похожих терминов
CDN — не то же самое, что прокси-сервер: прокси не кэширует и не имеет географически распределённой инфраструктуры. CDN — не балансировщик нагрузки: балансировщик распределяет запросы между несколькими origin-серверами внутри одного датацентра, CDN — глобально между копиями контента.