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

为何小体积favicon.png加载耗时是同类文件的10倍?

Cloudflare缓存异常问题排查与解决

1. 为啥favicon.png比logo.png加载慢10倍?

  • 看响应头就能找到根源:logo.png带有age字段,说明请求命中了Cloudflare边缘缓存(HIT),直接从节点取资源;而favicon.png无age字段,意味着每次请求都要回源拉取,这就是耗时差的核心原因。
  • Cloudflare对favicon这类特殊文件的默认缓存规则可能偏严格,比如默认TTL设置极短甚至不缓存,和普通图片的缓存逻辑区别对待。

2. 为啥刚HIT的资源几秒后就变MISS?

  • Cloudflare边缘节点的缓存空间有限,采用LRU(最近最少使用)淘汰机制:当节点缓存满了,会优先清理访问量低的资源,哪怕TTL还没到期。favicon这类资源访问量通常不高,很容易被快速清理,导致刚命中过也会秒变MISS。
  • 你禁用了Tiered Cache,这个功能原本是通过中间层缓存分担边缘节点压力的,禁用后边缘节点的缓存淘汰频率会升高,进一步加剧资源被清理的概率。

3. 启用Cache Reserve但禁用Tiered Cache,这配置靠谱吗?

  • 这不是最佳实践。Cache Reserve是作为长期存储的兜底层设计的,需要和Tiered Cache配合使用:Tiered Cache负责分层缓存热点资源,Cache Reserve存储不常访问但需保留的资源,两者协同才能最大化缓存命中率。
  • Cloudflare的警告是合理的,禁用Tiered Cache后直接用Cache Reserve,会绕开边缘节点的高效缓存链路,反而增加请求延迟,还容易引发异常。

4. 为啥开了Cache Reserve还是出现无age字段的慢加载资源?

  • 部分资源可能未被正确纳入Cache Reserve范围:比如favicon,需要在Cloudflare的缓存规则中明确设置缓存优先级,确保被Cache Reserve收录,否则可能被默认规则排除。
  • 缓存规则冲突:如果源站给这类资源设置了no-cache、no-store或极短TTL的Cache-Control响应头,会直接覆盖Cloudflare的缓存配置,哪怕开了Cache Reserve也无法生效,需要在Cloudflare规则中覆盖源站响应头。
  • 节点同步延迟:Cache Reserve启用后,边缘节点与存储层的资源同步需要时间,部分节点可能未完成同步,导致请求时无法命中缓存。

实操修复步骤

  • 先恢复Tiered Cache的启用状态,与Cache Reserve配套使用,遵循产品设计逻辑。
  • 给静态资源(包括favicon、logo)创建专门的缓存规则:
    • 设置Cache Level为Cache Everything
    • 自定义TTL设为1天及以上,避免被快速淘汰
    • 开启Cache Reserve选项,将资源纳入长期存储
  • 检查源站的Cache-Control响应头,若有禁止缓存的设置,在Cloudflare中添加规则覆盖该响应头。
  • 手动执行Cloudflare缓存清理(Purge Everything),让新规则立即生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:42:46