Loading...

Справка CDN.com.tr

Ключи кеша и очистка: почему возникает «я очистил, а контент всё ещё старый»

Каждый кешированный объект хранится под ключом, который строится из запроса — схемы, хоста, пути и строки запроса. Очистка удаляет запись только тогда, когда обращается именно к этому ключу. Одна эта идея объясняет практически каждый случай «очистка не сработала».

Ключи кеша и очистка: почему возникает «я очистил, а контент всё ещё старый»

Каждый кешированный объект хранится под ключом, который строится из запроса — схемы, хоста, пути и строки запроса. Очистка удаляет запись только тогда, когда обращается именно к этому ключу. Одна эта идея объясняет практически каждый случай «очистка не сработала».

Связанные инструменты и материалы

Две темы панели, на которые опирается эта, и версия-руководство с примерами API и cdnctl.

Чтение статуса кеша

HIT, MISS, BYPASS, EXPIRED — диагностическая половина этого процесса.

Открыть тему

Очистка кешированного контента

Пошаговый разбор Purge Management: очистка пути, сохранённые пути, полная очистка.

Открыть тему

Руководство по очистке кеша CDN

Та же модель мышления в подробностях, с вызовами API и однострочниками cdnctl для deploy-скриптов.

Читать руководство

Путь в панели

  1. Management Panel
  2. CDN Accounts
  3. Purge Management

Предварительные требования

  • Путь должен принадлежать выбранному аккаунту.
  • Диагностируйте по точному публичному URL (схема + хост + путь + строка запроса), а не по его пересказу.

Сценарии использования

Вы очистили путь после развёртывания, но посетитель по-прежнему сообщает о старой версии. Почти всегда очистка сработала — она просто удалила другую запись кеша, а не ту, которую получает посетитель (вариант со строкой запроса, мобильную копию или его собственный кеш браузера).

Порядок действий

  1. Получите точный URL, на котором посетитель видит устаревший контент — включая схему (https), хост (www или apex) и любую строку запроса. «Страница товаров» — этого недостаточно; /products и /products?page=2 — разные записи кеша.
  2. Проверьте, что CDN сделал на самом деле: выполните `curl -I` по этому точному URL и посмотрите на `X-Proxy-Cache-MT`. HIT означает, что CDN отдал кешированную копию; MISS или BYPASS означают, что старый контент отдаёт не CDN.
  3. Выполните очистку в Purge Management с областью, соответствующей проблеме: один точный путь для одного URL, очистка папки для всего, что находится под путём, или полная очистка аккаунта, когда структура изменилась везде.
  4. Проверяйте так же, как диагностировали: снова запросите тот же 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 ненадолго принимает весь трафик.