Skip to content

边缘缓存

渲染走 Cloudflare Cache API(caches.default),做边缘缓存:同一 URL 第一次完整渲染, 第二次直接命中,Worker 进程 0 CPU 消耗

观测头 X-Cache

每次图像响应都带 X-Cache,用于判断这次走了边缘还是重新渲染:

含义
HIT命中边缘缓存,未重新渲染(0 CPU)
MISS未命中,已完整渲染并写入缓存
BYPASS未写入缓存(见下)
bash
curl -sI "https://og.159499.xyz/og/base?title=Hi" | grep -i x-cache
# 第一次:X-Cache: MISS
# 第二次:X-Cache: HIT

缓存键

以**完整请求 URL(含全部 query)**为键。因此不同 width / height / format / theme / 字段 天然分开——改任意一个参数就是不同的缓存条目。

什么不缓存

以下情况响应标记 BYPASS不写入缓存:

  • debug=1:调试响应不能被缓存干扰,且 Cache-Control: no-store
  • 非 2xx 响应(4xx / 5xx):避免把错误响应缓存住、放大 bug 可见时长。

Cache-Control

  • 正常图像:immutable, max-age=1y(库默认)。
  • debug=1no-store, no-cache

生产响应的 X-Render-Ms 恒为 0performance.now() 在 CPU 计算期冻结), 权威渲染耗时看 wrangler tailcpuTime。缓存命中时本就不消耗 CPU。

基于 VitePress 构建 · 接口随代码演进,以线上 /templates 为准