You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需调用Cloudflare Worker直接从Cloudflare缓存返回响应

问题解决方法

核心原因

你此前配置不生效的根本原因是:默认给域名绑定Worker路由的场景下,Cloudflare的请求处理优先级是 先执行Worker逻辑,再走边缘缓存校验,所以无论缓存是否存在,Worker都会被触发,Page Rules的缓存规则自然无法提前拦截请求。

可落地的两种实现方案

方案1:将Worker配置为独立源站(最稳定,完全适配Page Rules)

这是最符合你需求的方案,完全把Worker当成普通源站处理,所有缓存逻辑和普通源站完全一致:

  • 第一步:确认你的Worker已经正常部署,拥有可访问的xxx.workers.dev域名,且Worker代码内没有强制返回Cache-Control: no-cache、private这类禁止边缘缓存的响应头。
  • 第二步:进入你的域名的Cloudflare控制台,找到「源站」-「源站配置」,新增一个源站,源站地址填写Worker的xxx.workers.dev,协议选择HTTPS,端口填443。
  • 第三步:进入「规则」-「转换规则」-「修改请求头」,新增一条规则,匹配你需要走该Worker的路径,添加修改请求头规则,将Host请求头的值修改为你的Worker的xxx.workers.dev,避免Worker无法识别请求来源。
  • 第四步:删除此前绑定的对应路径的Worker路由,保留你原本设置的缓存TTL为1个月的Page Rules即可。

配置完成后,请求会先经过Cloudflare边缘缓存校验:缓存命中直接返回,完全不会触发Worker;只有缓存miss时才会回源请求Worker,生成的响应会按Page Rules的配置缓存1个月,后续请求不会再触达Worker。

方案2:缓存规则配置命中时跳过Worker(无需修改源站配置)

如果你不想调整源站和Worker路由配置,可直接通过缓存规则实现:

  • 进入Cloudflare控制台的「缓存」-「缓存规则」,新增一条规则,匹配你需要缓存的路径。
  • 在规则配置的「运行时操作」板块,开启 缓存命中时跳过Worker 选项,同时按需求设置缓存TTL、是否忽略源站缓存头等配置。
  • 保存规则后即可生效,注意要确保规则优先级高于其他可能冲突的缓存规则。

注意事项

  • 两种方案都建议你先在低流量路径测试缓存命中率,确认Worker触发次数符合预期后再全量上线。
  • 如果需要自定义缓存键(比如忽略特定请求参数、区分移动端/PC端缓存),直接在缓存规则中配置即可,无需修改Worker代码。

内容的提问来源于stack exchange,提问作者dimention

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:27:02