FAQ по CDN
Продолжит ли CDN работать при недоступности S3 в SPB-1? Как он ведет себя для закэшированных объектов и при cache miss?
Только если заранее включена опция отдачи контента из кэша при ошибках источника (Use Stale) — если источник отвечает ошибкой, CDN-серверы будут отдавать последнюю сохраненную в кэш версию контента с заголовком Cache: Stale.
Можно выбрать, при каких ошибках отдавать кэш: error, timeout, invalid_header, http_500, http_502, http_503, http_504 и другие.
CDN-серверы продолжат проверять доступность источника с каждым новым запросом и обновят кэш, когда источник восстановится.
Если объекта нет в кэше CDN-сервера и шилдинг-сервера, контент получить неоткуда — CDN-сервер вернет ошибку. Use Stale работает только для объектов, которые уже были закэшированы, — сайт может отображаться не полностью.
Поддерживается ли настройка резервного origin в другом регионе с автоматическим переключением при недоступности основного?
Да. Для CDN-ресурса можно добавить несколько источников контента — основные и бэкапные. Для каждого источника задаются вес (приоритет) и число неудачных попыток соединения, после которых CDN направит запросы к следующему источнику. Если все основные источники недоступны, CDN-сервер запросит контент у бэкапного источника. Когда основной источник с самым большим весом снова станет доступен, переключение обратно произойдет автоматически. Бэкапный источник должен содержать те же файлы, что и основной.
Как определяется отказ origin, сколько времени занимает переключение и возможны ли сброс кеша или массовые ошибки при восстановлении?
Отказ источника определяется по превышению таймаутов при обращении к источнику контента и числу неудачных попыток соединения.
Таймаут задается отдельно для каждого этапа обращения к источнику (установка соединения, отправка запроса, получение ответа) — по умолчанию 10 секунд на этап.
Число неудачных попыток (по умолчанию 10) настраивается для каждого источника.
Если источник один, при превышении любого из таймаутов контент не будет доставлен — CDN-сервер вернет 504 Gateway Timeout и при новом запросе снова обратится к источнику.
Скорость переключения на резервный источник зависит от настроенных таймаутов и числа неудачных попыток.
Переключение источников не сбрасывает кэш.
Чтобы сгладить момент восстановления источника, используйте опцию Use Stale с параметром updating — она позволяет отдавать устаревший закэшированный ответ, пока файлы в кэше обновляются.
Какие компоненты CDN и его управляющей инфраструктуры являются общими для регионов и могут стать единой точкой отказа?
CDN — распределенная сеть кэширующих CDN-серверов с точками присутствия в 30+ городах: файл кэшируется на том сервере, который получил запрос. Недоступность отдельного региона или группы регионов не останавливает отдачу контента из остальных точек сети. Файл кэшируется на том CDN-сервере, который получил запрос, — доступность самого источника контента на отдачу закэшированных объектов не влияет.
Общие для всей сети компоненты это шилдинг-серверы и авторитетные DNS-серверы. Шилдинг-серверы кэшируют все файлы, которые запрашивают CDN-серверы, и снижают нагрузку на источник контента. Если шилдинг-сервер недоступен, а файла нет в кэше CDN-сервера, контент получить не удастся. Авторитетные DNS-серверы обслуживают адреса CDN-ресурса. Их недоступность затрагивает отдачу контента во всех регионах.
Чтобы снизить влияние недоступности общих компонентов, используйте дополнительные источники контента и отдачу контента из кэша при ошибках источника.