Защита сайта: кеширование и CDN
Защита сайта не только фильтрует трафик, но и ускоряет сайт: статические файлы раздаются из CDN. Разберём, что попадает в кеш, сколько там хранится и как его очистить.
Что такое 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 мегабайт.
Заголовок Accept должен соответствовать регулярному выражению ^(image|audio|video|text/css|font).
Откуда отдан файл, показывает заголовок ответа ddg-cache-status: HIT — из кеша CDN, MISS — с вашего сервера.
Время кеширования и ревалидация
Кешированием управляют директивы 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 секунд после окончания свежести. Фактический срок жизни файла увеличивается.
Как очистить кеш
- Войдите в личный кабинет, в левом меню откройте раздел «Товары/Услуги» и выберите «Защита сайта».
- Выберите вашу услугу и нажмите «Очистить кеш» на панели сверху.
Сразу после очистки сайт может загружаться дольше обычного — пока нужные файлы снова не попадут в кеш.
Похожее
Все статьи
Защита сайта от DDoS: как работает услуга
Услуга «Защита сайта» принимает весь трафик сайта на себя: запросы сначала проходят через сервер очистки, и только чистые попадают на ваш сервер. Разберём, что это даёт и как устроена фильтрация. Зачем нужна «Защита сайта» Сайт выдерживает атаку. Даже если на…
Защита сайта: как заказать услугу
Защита сайта заказывается в личном кабинете UFO.Hosting и подключается за несколько минут. Ниже — порядок действий от заказа до подключения. Как заказать услугу «Защита сайта» Войдите в личный кабинет и выполните шаги: В левом меню откройте раздел «Товары/Услуги» и выберите…