Тяжесть сайтов увеличивается с каждым годом. Для сравнения: в 2018 году средний вес веб-страниц составлял 1,8 Мб, а в первом полугодии 2024 года достиг 2,3 Мб. При этом пользователи не спешат снижать требования к скорости загрузки сайта и покидают его, если контент не успевает появиться в течение 3 секунд. Согласно исследованиям Google, такое поведение характерно для 53% пользователей. Поведенческие показатели падают, а вместе с ними ухудшается ранжирование сайта в поисковых системах. Если тяжелый сайт находится далеко от части своих целевых посетителей, то для них время ожидания контента может достигнуть еще более критичных значений. Процент отказов продолжит расти с каждой дополнительной секундой до загрузки страницы. Для онлайн-бизнеса, который имеет клиентов по всей стране и за ее пределами, это грозит нулевой конверсией и потерей дохода. Решением проблемы медленной работы сайта является content delivery network (сеть доставки содержимого). В статье рассказываем о том, что такое CDN, когда использовать технологию и что выбрать в качестве альтернативы.

CDN (Content Delivery Network): определение

CDN (Content Delivery Network) — это сеть расположенных в разных географических точках серверов, которые помогают сайтам быстро доставлять пользователям контент и снижают нагрузку на основной сервер (хранящий оригинал данных). CDN-серверы являются дополнительными узлами хранения и передачи данных. В их кэше содержится статический контент. Когда запрос на загрузку сайта поступает от пользователя, который находится на большом расстоянии от центра обработки данных главного сервера, часть его выполняет CDN. Самый близкий к посетителю веб-ресурса CDN-сервер отдает браузеру неизменяемое содержимое сайта, освобождая от выполнения этой задачи основной сервер. Сокращается путь трафика, увеличивается скорость соединения между устройствами, снижается риск перегрузки сервера.

CDN: что это простыми словами.
Изображение от rawpixel.com на Freepik.

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

Сайт хранится на сервере, который еще можно назвать источником контента или просто — ориджином. Обычно запрос браузера обрабатывается сервером-источником напрямую. Это значит, что он самостоятельно отдает все файлы. Если пользователи веб-ресурса живут в разных уголках Европы, Азии и других частей света, ответ сервера должен преодолеть тысячи километров по оптоволоконным кабелям и несколько раз получать инструкции по прохождению маршрута от разных ретрансляторов. Если ориджин располагается в москвом ЦОД, то для жителей данного региона получение данных пройдет моментально. Расстояние от Москвы до Якутска — 8370 км, отдельные точки подключения могут располагаться еще дальше. Загрузка информации будет длиться несколько минут, дождаться результата смогут единицы пользователей с очень высокой мотивацией. Чтобы сократить время до получения контента клиентом, «тяжелую» часть сайта (бинарные файлы, тексты, изображения, стримы, скрипты) кэшируют на распределенных серверах CDN-сети. Позволить себе сеть CDN-серверов может не каждая компания, поэтому владельцы веб-ресурсов обращаются к CDN-провайдеру.

Распределение контента

Сервер в составе CDN является «точкой присутствия» (Point of Presence) проекта в той или иной локации. Провайдер услуги выбирается по наличию оборудования в нужных зонах. Региональные PoP также носят название edge-серверы. Они подключаются к ориджину и кэшируют данные, когда получают первый запрос от пользователя. Для него загрузка сайта может быть продолжительной. При дальнейших обращениях edge быстро отдает файлы браузерам, так как они уже есть в его памяти. Чтобы убрать неудобство для первых клиентов каждой PoP, владелец проекта может заранее прогреть CDN-сеть.

Для распределения контента между пользователя из разных регионов CDN-сеть использует две популярные технологии: GeoDNS и AnyCast.

GeoDNS. Когда веб-браузер обращается к DNS-серверу сайта, последний находит в пакете запроса публичный IP-адрес пользователя и по нему выбирает ближайшую к клиенту точку присутствия. В основе лежит geoIP — преобразование IP в географические координаты.

AnyCast. Технология использует протокол BGP, являющийся источником информации о соседний сетях и расстоянии до них. CDN устанавливает связь с несколькими маршрутизаторами, которые узнают и через какое-то время сообщают о том, какой из них может обеспечить кратчайший путь к нужному IP адресу, и направляют трафик к нему.

Умение определять IP-адреса пользователей позволяет устанавливать на CDN-сервере географические ограничения на доступ к веб-ресурсу из определенных географических зон.

Кэширование

Со временем устареть может даже статический контент. Чтобы пользователи видели сайт в его актуальном виде, устанавливаются правила кэширования (Caching Rule). Они определяют параметр Time to Live — время жизни. Он устанавливает продолжительность хранения информации в кэше до ного обращения edge к серверу-источнику. Перед новым кэшированием CDN-сервер проходит очистку и подготавливается к загрузке актуальной информации. Данный механизм обозначается термином Purge.

Как работает CDN.
Изображение от rawpixel.com на Freepik.

Шилдинг

Во время обновления информации в точках присутствия возникает повышенная нагрузка на основной сервер. Высокая интенсивность входящих запросов может вызвать его перегрузку. Чтобы защитить работоспособность проекта с широкой CDN-сетью, используют шилдинг. Между ориджином и PoP устанавливается дополнительный сервер, который первым проводит кэширование и раздает его результаты CDN-серверам. Промежуточный сервер выполняет функцию щита.

Шилдинг.
Изображение от vectorjuice на Freepik.

В каких случаях нужно подключать CDN

CDN помогает решать разные задачи проекта от сохранения репутации до экономии на аренде VPS/VDS. Разберем ситуации, в которых проекты не смогут обойтись без CDN:

  • широкая география пользователей (характерно для интернет-магазинов, стриминговых платформ, игровых серверов, крупных новостных порталов, онлайн-банков);
  • быстрое развитие и масштабирование проекта;
  • потребность в стабильной работе веб-проекта (без перегрузки);
  • повышенный риск DDoS-атак (атака на сеть серверов требует очень высоких затрат);
  • обслуживание «медленных запросов» (наличие на сайте ресурсоемких программ и интерактивного медиаконтента);
  • необходимость улучшения пользовательского опыта и индексации поисковыми роботами за счет быстрого ответа сервера;
  • высокие затраты на хостинг (CDN позволяет выбирать менее мощный VDS).

Таким образом, подключение к CDN-сети положительно влияет продвижение проекта в Сети.

Преимущества использования CDN

Без CDN некоторые проекты не смогли бы выдержать конкуренции. Чем больше альтернативных предложений ваш клиент может получить на сторонних веб-ресурсах, тем ниже его мотивация оставаться на сайте с долгой загрузкой. Разберем основные преимущества CDN:

  1. Улучшение SEO — пользователь в считанные секунды получает контент, поисковые роботы учитываю это при индексации и лучше ранжируют сайт.
  2. Отсутствие потребности в приобретении и содержании дорогой ИТ-инфраструктуры — не нужно покупать дополнительные серверы и комплектующие к ним, создавать для их размещения ЦОДы.
  3. Повышение аптайма сайта — низкий риск DDoS-атак, отсутствие нагрузок, превышающих вычислительные возможности сервера, множественное резервирование информации.
  4. Широкий охват аудитории — пользователей привлекает высокая скорость ответа сервера.

С CDN сервер-источник имеет высокую доступность для своих пользователей.

Недостатки и альтернативы CDN

В некоторых случаях настройка CDN-сети может оказаться бесполезной и убыточной. Прежде чем обратиться к провайдеру content delivery network, убедитесь, что технология подходит вашему сайту. Если основным наполнением веб-ресурса является динамический контент, edge-серверы не смогут взять их на себя. Кроме того, обновление данных на CDN-серверах может занимать сутки. Для некоторых проектов такая задержка в отображении актуальной информации может быть критичной. Не подойдет CDN малому бизнесу, клиенты которого живут в одном регионе. Аренда дополнительных серверов не приносит пользы и не окупится.

Оптимизировать работу сайта в этих случаях можно более классическими методами и инструментами SEO:

  • сжать фото, видео и иллюстрации на сайте (с помощью плагинов CMS, графических редакторов, онлайн-сервисов и т. д.);
  • упорядочить подключение JS-скриптов и CSS-стилей;
  • выбор более мощной конфигурации сервера для быстрой генерации HTML-страниц;
  • проверить настройки систем управления базами данных и веб-приложений.

Заключение

CDN-сеть — полезный инструмент, который может сократить количество и длительность периодов в работе сайта, когда он не доступен для конечных пользователей. Он улучшает характеристики веб-ресурса, которые важны для удобного взаимодействия с ним. Однако он подойдет не всем проектам. Иногда сокращать скорость загрузки сайта лучше с помощью обычных SEO-инструментов.