← Cloudflare Cache / cache / interaction-cloudflare-products
Настройка поведения кеша с помощью Workers
Вы можете использовать Workers чтобы настроить поведение кеша в сети Cloudflare. Workers работают как промежуточный уровень в жизненном цикле запроса: один Worker обрабатывает и фазу запроса, и фазу ответа. Когда поступает запрос, он сначала попадает в Worker, а уже потом проверяется кеш. Worker может изменить входящий запрос (например, переписать URL или добавить заголовки), а затем вызвать fetch() чтобы запрос продолжил проходить через кеш. Когда ответ возвращается (из кеша или с исходного сервера), Worker также может изменить его перед отправкой посетителю.
На приведённой ниже диаграмме показан типичный поток взаимодействия между Workers и Cache.
- Посетитель (a) запрашивает URL-адрес, и этот запрос направляется к Worker. Затем Worker может взаимодействовать с запросом, либо запрашивая контент с исходного сервера с помощью (b)
fetch()или отправкой посетителю ответа (f). - Если контент кеширован, кеш отправляет ответ (e) обратно в Worker, который может изменить ответ перед отправкой ответа (f) обратно посетителю.
- При использовании cache rules с Workers правило кэширования должно соответствовать свойствам URL в
fetch()(b), таких как заголовки, имя хоста или путь URL, а не исходный URL/хост посетителя (a). В противном случае правило не будет применено.
Ниже приведены несколько примеров того, как Workers можно использовать для настройки поведения кеша:
-
Изменить ответ: корректируйте или дополняйте контент после его получения из кеша, обеспечивая актуальность ответов или их соответствие конкретным потребностям.
-
Подписанные URL: Создаёт подписанные URL-адреса с ограниченным сроком действия для контроля доступа и повышения безопасности.
-
Персонализированный ответ: Предоставляет персонализированный контент на основе данных пользователя, используя кешированные ресурсы для снижения нагрузки на исходный сервер.
-
Снижение задержек: Доставляет контент из дата-центра, ближайшего к посетителю, сокращая время загрузки и улучшая пользовательский опыт.
Также можно использовать Snippets для лёгких изменений, таких как изменение заголовков, редиректы и проверка JWT, без развёртывания полноценного скрипта Worker. Snippets включены без дополнительной оплаты во все платные планы, но имеют более строгие ограничения по ресурсам (5 мс времени выполнения, 32 КБ размера пакета).
Функции кеша в Workers
Workers предлагает два способа взаимодействия с кэшем. Используйте fetch() когда ваш Worker выполняет подзапросы к источнику. Используйте Cache API, если Worker формирует ответы без источника на бэкенде.
-
fetch(): Когда Worker вызывает
fetch(), запрос проходит через кеш Cloudflare и Tiered Cache (если включено). Вы можете управлять поведением кэширования, задавая свойства запросаcfобъект включая значения времени жизни (TTL), пользовательские ключи кэша и заголовки кэширования. Подробнее см. Кеширование с помощью fetch. -
Cache API: Позволяет программно сохранять, получать и удалять ответы в кеше Cloudflare с помощью
caches.defaultилиcaches.open(). В отличие отfetch(), Cache API работает только с кешем в дата-центре, обрабатывающем текущий запрос: он не взаимодействует с Tiered Cache. Используйте Cache API, когда нужно кешировать ответы, полученные не от источника. Подробнее см. Использование Cache API.
Подробнее о взаимодействии Cache и Workers см. Кеш в Workers.