Что такое CDN и как он ускоряет сайт
Основы3 минРедакция Innovialabs
Коротко
CDN — сеть серверов по всему миру, которые хранят копии файлов сайта и отдают их посетителю из ближайшей точки, поэтому страницы грузятся быстрее, а основной сервер разгружается; выигрыш заметнее всего для статики и аудитории далеко от сервера.
Короткий ответ
CDN (Content Delivery Network) — это сеть серверов в разных городах и странах. Они стоят между посетителем и вашим основным сервером (origin) и хранят копии файлов сайта. Когда человек открывает страницу, картинки, стили и скрипты приходят ему не с origin, а с ближайшего узла сети.
Итог: страницы открываются быстрее, основной сервер получает меньше запросов, а сайт легче переносит всплески трафика.
Как это работает
Узлы CDN называют edge-серверами или точками присутствия (PoP). Процесс выглядит так:
- Посетитель из Ташкента запрашивает
example.com/logo.png. - DNS направляет его на ближайший edge-сервер CDN.
- Если файл уже есть в кэше edge — он отдаётся сразу (cache hit).
- Если нет (cache miss) — edge забирает файл с origin, отдаёт посетителю и сохраняет копию для следующих.
Сколько хранить копию, определяют заголовки ответа вашего сервера, например:
Cache-Control: public, max-age=31536000, immutable
Такой заголовок подходит для файлов с хэшем в имени (app.3f9a2c.js): при изменении меняется имя, и старый кэш не мешает.
Почему CDN ускоряет сайт
Главный фактор — задержка (latency): время, за которое сигнал проходит до сервера и обратно. Она растёт с расстоянием и числом промежуточных узлов сети. Если сервер стоит в Европе, а посетитель в Центральной Азии, каждый запрос проходит длинный путь, а загрузка страницы — это десятки запросов и несколько этапов установки соединения (TCP, TLS).
CDN сокращает этот путь:
- статика отдаётся с близкого узла, поэтому каждый запрос короче;
- соединение TLS устанавливается с ближайшим edge, а не с далёким сервером;
- между edge и origin CDN обычно держит постоянные оптимизированные соединения.
Для посетителей рядом с origin разница небольшая. Для тех, кто далеко, — заметная.
Кэшируемый и динамический контент
| Контент | Примеры | Кэшируется? |
|---|---|---|
| Статика | Картинки, шрифты, CSS, JS, видео | Да, надолго |
| Публичные страницы | Главная, статьи блога, карточки товара | Часто да, на короткое время |
| Персональный контент | Корзина, личный кабинет, ответы API с данными пользователя | Нет |
Персональные страницы CDN по-прежнему пропускает через себя, но не кэширует. Даже здесь бывает выигрыш за счёт быстрого TLS и оптимизированного маршрута до origin, но он меньше, чем для статики.
Что ещё даёт CDN
- Защита от DDoS и фильтрация вредоносного трафика на уровне сети.
- Бесплатный SSL на edge-серверах.
- Сжатие и оптимизация изображений у некоторых провайдеров.
- Устойчивость: если origin ненадолго недоступен, часть страниц может отдаваться из кэша.
Когда CDN не стоит подключать
- Вся аудитория рядом с сервером, а сайт небольшой. Выигрыш минимален, а сложность растёт.
- Почти весь контент персональный — например, внутренняя CRM. Кэшировать нечего.
- Есть требования к месту хранения и обработки данных, а у провайдера нет узлов в нужной юрисдикции.
- Нет времени разбираться с кэшем. Неправильная настройка может показать одному пользователю данные другого или оставить устаревшую страницу после обновления.
Частые ошибки
- Кэширование страниц с персональными данными. Всегда проверяйте, что ответы с cookies сессии и личными данными помечены
Cache-Control: privateилиno-store. - Длинный кэш для файлов без хэша в имени. После обновления посетители увидят старый
style.css. - Забытая очистка кэша (purge) после деплоя.
- Origin открыт напрямую. Если сервер доступен в обход CDN, защита от атак теряет смысл.