Что такое CDN?
CDN, или сеть доставки контента — это система серверов, размещённых в разных точках мира. Они кешируют статические элементы сайта (изображения, скрипты, стили и прочее), чтобы при обращении пользователя данные загружались не с основного сервера, а с ближайшего к нему CDN-узла. Это повышает скорость отклика и улучшает производительность ресурса.
CDN включен по умолчанию для всех услуг защиты сайта. В общих настройках доступно управление, в том числе включение и выключение кеширования.
Требования к контенту
Следующие форматы кешируются:
.js, .css, .ejs, .png, .jpg, .jpeg, .gif, .ico, .bpm, .svg, .svgz, .cur, .pict, .tif, .tiff, .eps, .ttf, .eot, .otf, .woff, .woff2, .swf, .mp3, .mp4, .ogg, .wav, .webm, .webp, .avi, .flv, .mov, .pls, .midi, .mid, .mkv, .m4v, .ts, .m3u8, .txt, .exe, .zip, .xz, .gz, .lzma, .7z, .rar, .class, .jar, .tar, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf, .rtf, .csv, .ps, .odt, .ods, .odp, .odg.
Ответы сервера кешируются, если
- Запрос не содержит заголовка
Authorization - Запрошенный файл имеет формат из списка выше, ИЛИ запрос содержит заголовок
Acceptс указанием типа статического контента (начинается сimage,audio,video,text/css,text/font), ИЛИ запрос содержит заголовокIf-Modified-SinceилиIf-None-Match - Ответ содержит заголовок
Last-Modified,ExpiresилиCache-Control - Ответ содержит заголовок
Content-Lengthи его значение не превышает 2048 мегабайт
HTTP-заголовок ответа ddg-cache-status показывает, отдается ли контент из кеша CDN (статус HIT) или с целевого сервера (статус MISS).
Заголовок Accept должен соответствовать регулярному выражению ^(image|audio|video|text\/css|font)
Время кеширования и ревалидация
Для управления кешированием используются директивы HTTP-заголовка Cache-Control.
Время хранения файлов в кеше CDN зависит от свежести (freshness) файла, которая задается одним из способов:
- если есть директива
s-maxage, срок свежести файла определяется по его значению; - в противном случае используется значение
max-age.
Если прямых директив нет, используется эвристическая оценка свежести:
- по разнице между
ExpiresиDate(если Date больше Expires, свежесть равна нулю); - при отсутствии
Expires/Date— 10% от разницы междуDateиLast-Modified; - при отсутствии
Date/Last-Modified— 5 минут.
Эвристическая оценка свежести всегда находится в диапазоне от 5 минут до 10 суток.
Файл ревалидируется, если его срок жизни истек. По умолчанию срок жизни равен свежести, однако некоторые директивы могут влиять на его формулу:
min-fresh— ревалидировать, когда до завершения времени жизни объекта останется min-fresh секунд. Уменьшает фактический срок жизни файла.max-stale— отдавать из кеша даже в течении max-stale секунд после истечения срока свежести. Увеличивает фактический срок жизни файла.
Очистка кеша
- Войдите в личный кабинет, найдите в левом меню раздел "Товары/Услуги", нажмите на "Защита сайта".
- Выберите вашу услугу защиты сайта, нажмите "Очистить кеш" на панели сверху. После очистки кеша сайт может загружаться дольше обычного, пока не закешируются все необходимые файлы.
