INTEGRITY Документация

Как Workers взаимодействуют с Cache Rules

Если вы используете одновременно Cache Rules и Workers в том же запросе настройки кеша Worker имеют приоритет, но только если требуемый флаги совместимости включены.

Ваш скрипт Workers может переопределять поведение Cache Rules независимо от того, проксируется ли домен через Cloudflare или нет. Например, если Cache Rule настроено на обход кеша для example.com/foo, но ваш скрипт Workers устанавливает cacheEverything: true в cf объект для fetch() запроса приоритет имеет настройка Worker, и ответ кешируется.

Порядок приоритета

Поведение кеша определяется следующим порядком приоритета:

  1. Workers настройки скрипта
  2. Cache Rules
  3. Page rules

Workers имеет приоритет над Cache Rules, а Cache Rules имеет приоритет над Page Rules. Если несколько правил одного уровня совпадают с одним и тем же запросом, применяется последнее совпавшее правило на предмет конфликтующих настроек.

Флаги совместимости

Поведением переопределения управляет флаги совместимости настройки конфигурации, включающие для Worker определённое поведение во время выполнения. Существует два флага, потому что у Workers есть два способа взаимодействия с кэшем:

Эти флаги необходимо включить, чтобы скрипты Workers могли переопределять Cache Rules. Если нужный флаг не включён для используемого вами API, настройки кеша вашего Worker будут молча проигнорированы, и вместо них будут применяться Cache Rules.

Поведение, зависящее от даты совместимости

У Worker дата совместимости определяет, какие флаги активны по умолчанию. Когда вы задаёте дату совместимости, все флаги с датой включения на эту дату или раньше включаются автоматически.

Флаг Включено по умолчанию Предварительное условие
request_cf_overrides_cache_rules (Fetch API) Даты совместимости, начиная с 2025-04-02 None
cache_api_compat_flags Даты совместимости, начиная с 2025-04-19 None
cache_api_request_cf_overrides_cache_rules (Cache API) Даты совместимости, начиная с 2025-05-19 Требует cache_api_compat_flags

У Cache API есть дополнительное требование: cache_api_compat_flags должен быть включен, чтобы флаги совместимости вступили в силу для Cache API. Без этого Cache API игнорирует все флаги совместимости, даже те, что вы явно указали в конфигурации.

Если ваш Worker использует дату совместимости раньше указанных выше, добавьте флаги в конфигурацию вручную. Иначе поведение кеша будет определяться настройками Cache Rules, а не самого Worker.

Пример (более ранняя дата совместимости)

Cache Rule обходит кеш для example.com/foo. Worker с датой совместимости раньше 2025-04-02 задает cacheEverything: true через fetch(). Поскольку дата совместимости слишком старая для request_cf_overrides_cache_rules активной по умолчанию, приоритет получает Cache Rule, и ответ не кешируется.

Аналогично, если вы используете Cache API и дата совместимости установлена раньше 2025-04-19, cache_api_compat_flags не активен. Даже если вы вручную добавите cache_api_request_cf_overrides_cache_rules в вашу конфигурацию, это не даёт эффекта, так как Cache API не распознаёт флаги совместимости без cache_api_compat_flags.