Технологии: Работа с CDN

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

Частой практикой является разместить весь статический контент сайта на отдельном домене, который будет обслуживаться с использованием CDN, в то время как основной домен сайта будет работать без него.

Работа без CDN и с CDN

Если сервер, который служит источником контента, находится под защитой Qrator Labs (т. е. является апстримом), то необходима дополнительная настройка защиты для пропуска трафика из сети CDN. CDN находится не просто за пределами сети клиента, но и за пределами сети Qrator Labs. Поэтому запросы от CDN к этому апстриму проходят такой же путь, как и запросы от абстрактного пользователя. Однако их количество и характер могут заметно отличаться. При некорректной настройке такие запросы могут вызвать ложное срабатывание защиты от DDoS-атак в сети Qrator Labs. Это скажется сразу на всех пользователях, которые получают контент через CDN.

Qrator Labs предлагает клиентам собственную услугу Qrator.CDN, а также возможность интеграции со многими популярными провайдерами услуг CDN. Вне зависимости от конкретного провайдера, общий принцип интеграции заключается в том, чтобы корректно идентифицировать запросы из сети CDN и всегда считать их легитимными.

Конкретный способ определения запросов зависит от того, CDN какого провайдера вы используете. Для некоторых провайдеров используется проверка подписей запросов согласно протоколу G2O, а для некоторых — проверка IP-адреса согласно белому списку. Различаются также способы настройки остальных параметров CDN: для Qrator.CDN настройки доступны прямо из специального раздела личного кабинета или выполняются специалистами технической поддержки Qrator Labs, тогда как для других провайдеров настройку необходимо выполнять на их сайтах отдельно от настройки Qrator Labs.

Работа с Ngenix, Akamai и G-Core

Для клиентов, использующих CDN от Ngenix, Akamai или G-Core, Qrator Labs автоматически добавляет IP-адреса соответствующих сетей в исключения при защите от атак. Таким образом, весь трафик, пропущенный CDN, гарантированно доходит до апстрима.

Все настройки выполняются на сайте соответствующего CDN. В качестве апстрима для CDN следует указать Qrator IP.

Работа по протоколу G2O

Многие провайдеры CDN поддерживают протокол авторизации запросов G2O. В рамках этого протокола к каждому запросу добавляется два HTTP-заголовка. В одном из них содержатся определённые дополнительные данные о запросе, включая его ID, сгенерированный случайным образом. Во втором заголовке содержится подпись, сделанная на основе этих данных. Для подписи используется ключ, одна из частей которого известна сети Qrator Labs и используется для проверки. Таким образом, сеть Qrator Labs может убедиться, что запрос был отправлен именно с CDN.

Все настройки выполняются на сайте соответствующего CDN. В качестве апстрима для CDN следует указать Qrator IP.

expand_less