Источники и их группы
За контентом, который запрашивают клиенты, CDN-серверы обращаются к источникам.
Источником может быть:
- Сервер с привязанным к нему доменным именем. Например, если доменное имя сервера —
files.example.com
, то за файлом/static/common.css
CDN-серверы будут обращаться к серверу по адресуfiles.example.com/static/common.css
. - Бакет из Yandex Object Storage, в том числе настроенный как хостинг статического сайта.
- L7-балансировщик нагрузки из Yandex Application Load Balancer. CDN-серверы будут обращаться к балансировщику по одному из его IP-адресов, который нужно выбрать в настройках источника.
Источник должен отвечать на запрос CDN-сервера в течение 5 секунд. Если за это время ответа не поступило, CDN-сервер отправляет клиенту ответ с HTTP-кодом состояния 504 Gateway Timeout
.
При создании ресурса для него указывается один источник или одна группа источников. После создания в настройках ресурса можно заменить один источник на другой, а группу источников — на другую группу.
Чтобы снизить нагрузку на источники со стороны CDN-серверов, вы можете включить экранирование источников ресурса.
Группы источников
Чтобы распределять нагрузку между источниками с одним и тем же контентом, из них можно создать группу.
Источник в группе может быть основным или резервным. Запросы от CDN-серверов распределяются между основными источниками по кругу.
Например, если в группе два основных источника, то первый запрос контента будет отправлен первому источнику, второй — второму, третий — снова первому и т. д.
Если основной источник ответил CDN-серверу HTTP-кодом состояния 5xx, запрос отправляется одному из резервных источников. Если в группе нет резервных источников или ответ вновь содержит код 5xx, CDN-сервер отправляет клиенту ответ с тем же кодом.
Совет
Если вы публикуете контент в двух или более бакетах, объедините их в группу бэкендов L7-балансировщика и используйте балансировщик как источник, как показано в сценарии сине-зеленого и канареечного развертывания. Иначе вам понадобится поддержать в сервисе отправку запросов к CDN с разными значениями заголовка Host
, соответствующими разным бакетам.