Кеш, безопасность, WAF и очистка
Ключи кеша и очистка: почему возникает «я очистил, а контент всё ещё старый»
Каждый кешированный объект хранится под ключом, который строится из запроса — схемы, хоста, пути и строки запроса. Очистка удаляет запись только тогда, когда обращается именно к этому ключу. Одна эта идея объясняет практически каждый случай «очистка не сработала».
Связанные инструменты и материалы
Две темы панели, на которые опирается эта, и версия-руководство с примерами API и cdnctl.
Чтение статуса кеша
HIT, MISS, BYPASS, EXPIRED — диагностическая половина этого процесса.
Открыть тему
Очистка кешированного контента
Пошаговый разбор Purge Management: очистка пути, сохранённые пути, полная очистка.
Открыть тему
Руководство по очистке кеша CDN
Та же модель мышления в подробностях, с вызовами API и однострочниками cdnctl для deploy-скриптов.
Читать руководство
Путь в панели
- Management Panel
- CDN Accounts
- Purge Management
Предварительные требования
- Путь должен принадлежать выбранному аккаунту.
- Диагностируйте по точному публичному URL (схема + хост + путь + строка запроса), а не по его пересказу.
Сценарии использования
Вы очистили путь после развёртывания, но посетитель по-прежнему сообщает о старой версии. Почти всегда очистка сработала — она просто удалила другую запись кеша, а не ту, которую получает посетитель (вариант со строкой запроса, мобильную копию или его собственный кеш браузера).
Порядок действий
- Получите точный URL, на котором посетитель видит устаревший контент — включая схему (https), хост (www или apex) и любую строку запроса. «Страница товаров» — этого недостаточно; /products и /products?page=2 — разные записи кеша.
- Проверьте, что CDN сделал на самом деле: выполните `curl -I` по этому точному URL и посмотрите на `X-Proxy-Cache-MT`. HIT означает, что CDN отдал кешированную копию; MISS или BYPASS означают, что старый контент отдаёт не CDN.
- Выполните очистку в Purge Management с областью, соответствующей проблеме: один точный путь для одного URL, очистка папки для всего, что находится под путём, или полная очистка аккаунта, когда структура изменилась везде.
- Проверяйте так же, как диагностировали: снова запросите тот же URL и ожидайте MISS (свежая загрузка с origin), затем HIT. Если ваш собственный браузер всё ещё показывает старую страницу, сделайте жёсткое обновление — CDN не может дотянуться до кеша браузера.
Проверки
- Строки запроса создают отдельные записи: /banner.jpg и /banner.jpg?v=2 кешируются независимо. Очистка одного не затрагивает другой.
- Схема и хост — часть ключа: http и https, www и apex — разные записи. Очищайте каноничную форму, которую действительно используют ваши посетители.
- Мобильная и десктопная версии могут быть отдельными копиями одного пути — жалоба на устаревший контент только с телефонов обычно означает мобильный вариант.
- Очистка удаляет контент из CDN, но никогда — из кеша браузера посетителя. Это последнее окно ограничивает браузерный TTL в ваших правилах кеша, а не ещё одна очистка.
Часто задаваемые вопросы
Очистка сообщила об успехе, но страница всё ещё старая — она не сработала?
Почти наверняка сработала. Диагностируйте через `curl -I` по точному URL: если первый запрос после очистки даёт MISS, запись CDN была удалена, а устаревшая копия находится в другом месте — в другом варианте URL или в кеше браузера посетителя.
Я очистил /products, но /products?page=2 и /products?utm_source=x всё ещё старые.
Каждая комбинация строки запроса — отдельная запись кеша. Очистите папку/префикс, чтобы удалить все записи под этим путём, или очистите самые нагруженные варианты явно.
Нужно ли выполнять очистку после каждого развёртывания?
Если ваш HTML кешируется с длинным TTL — да, очищайте изменённые пути как шаг развёртывания. API очистки и cdnctl существуют именно для этого; у deploy-скрипта, который завершается точечной очисткой, этот класс проблем не возникает.
Когда стоит использовать полную очистку (purge all)?
Когда структура URL изменилась по всему сайту (миграция, редизайн) и очистка по путям превратилась бы в длинный список догадок. Используйте её осознанно: сразу после неё каждый запрос — это MISS, пока кеш не прогреется заново, поэтому ваш origin ненадолго принимает весь трафик.