CDN (Content Delivery Network)
Сеть серверов в разных городах, которая хранит копии файлов сайта и отдает их посетителю с ближайшего сервера.
CDN (Content Delivery Network, сеть доставки контента) — распределенная сеть серверов в разных городах и странах. Она хранит копии файлов сайта — изображений, видео, скриптов, стилей, документов — и отдает каждому посетителю из ближайшей точки. Посетитель из Новосибирска получает картинку с сервера в Новосибирске, а не из Москвы, — быстрее и без нагрузки на основной сервер сайта.
Как это работает
- Адрес для файлов, например
cdn.example.ru, указывает на сеть CDN. - Через DNS или маршрутизацию посетитель попадает на ближайший к нему сервер сети (edge).
- Если файла там еще нет, сервер CDN один раз забирает его с основного сервера и сохраняет.
- Следующие посетители из этого региона получают файл сразу из копии.
Сколько хранить копию, CDN понимает из заголовков Cache-Control, которые отдает сайт; подробнее — в термине «Кэширование». Обновленный файл можно принудительно удалить из всех копий (purge) или выпустить под новым именем.
Что дает CDN
- Скорость. Меньше расстояние — меньше задержка. Особенно заметно для видео, больших изображений и пользователей далеко от сервера.
- Разгрузка сервера. Основной сервер обслуживает только динамические запросы, а тяжелые файлы отдает сеть.
- Устойчивость к пикам. Наплыв посетителей распределяется по сотням серверов.
- Защита. Крупные CDN поглощают атаки DDoS и скрывают адрес основного сервера.
Что кэшировать, а что нет
Лучше всего CDN подходит для статики, одинаковой для всех: картинок, шрифтов, скриптов, видео, PDF. Динамические страницы и все персональное — личный кабинет, корзина, данные клиента — кэшировать нельзя, иначе один посетитель может увидеть чужие данные. Такие запросы CDN передает на основной сервер, часто ускоряя только само соединение.
CDN и безопасность
CDN работает по TLS и хранит сертификат сайта, то есть видит трафик в расшифрованном виде. Поэтому провайдера выбирают с учетом требований к данным: для государственных и банковских систем важно, где расположены серверы и кому принадлежит сеть. На российском рынке работают и отечественные, и международные провайдеры.
Нужен ли CDN
Если аудитория сосредоточена в одном регионе, а на сайте немного тяжелых файлов, хорошо настроенный сервер с Nginx и правильными заголовками кэширования справится не хуже. CDN окупается при географически широкой аудитории, видео и больших каталогах изображений, а также как защита от атак.