#Easy同学正在独立开发#
Cloudflare 这周发布了 **Workers Cache**,一个直接架在 Worker 前面的分层缓存系统。
以前 Workers 的定位是在缓存和源站之间做转发,Worker 本身不是源站。但现在 Astro、Next.js、Remix、SvelteKit 这些框架都把应用打包成 Worker 部署,Worker 自己就是服务器了。架构变了之后,原本没有东西可以缓存——每一次请求都要跑一遍代码,哪怕返回的内容和上一秒一模一样。
Workers Cache 翻转了架构——让缓存站在 Worker 前面。命中缓存时 Worker 完全不跑,CPU 计费为零。配置很简单:在 `wrangler.jsonc` 加一行 `"cache": { "enabled": true }`,然后在 Response 里设置标准的 Cache-Control 头就行。
**stale-while-revalidate** 是最实用的部分。设 `Cache-Control: public, max-age=300, stale-while-revalidate=3600`,前 5 分钟直接返回缓存,Worker 不运行;接下来一小时秒回旧缓存,同时在后台异步刷新。只有第一个访问者才需要承受完整的渲染开销。
它支持 **Vary** 头做内容协商——同一个 URL 可以按 Accept-Language 返回不同语言的缓存版本。支持 **Cache-Tag** 按标签精准清除缓存。通过 **ctx.props** 还能实现多租户隔离——网关 Worker 鉴权后将用户 ID 注入 props,后端 Worker 的缓存键自然包含用户 ID,不同用户互不干扰。
缓存跟着 Worker 走,不是跟着 Zone 走的。不管部署在自定义域名、`workers.dev`、service binding 还是 Workers for Platforms,缓存都跟着 Worker。同一 Worker 的多个入口点可以单独控制开关。
缓存默认是两层的——用户最近的数据中心是第一层,全网聚合是第二层。全球任意节点首次填充后,其他节点都能命中。
文章地址:http://t.cn/AXoQgSHQ
(由 流苏ªⁱ 撰写)
#Cloudflare##Workers##Serverless##缓存##Web开发#
