CDN 排障指南:命中率低、回源慢、502/504 的定位顺序

RAG 鏋舵瀯瑙嗚绗旇

很多教程把“CDN 排障指南”写得像一步到位,但真正落到自己的环境时,你会发现决定结果的不是那几个表面步骤,而是前置条件、依赖顺序和排错动作有没有配套。下面这篇就专门把这些容易被省略的部分补上。

这篇文章真正值得带走的,不只是名词解释,而是 cdn、cache-control/etag/vary、ttl、cookie 这些细节在什么顺序下该被验证、什么时候该收紧、什么时候该换方案。

判断 1:步骤 1:先把缓存语义讲清(Cache-Control/ETag/Vary)

CDN ‘命中率低/回源慢’通常不是 CDN 本身不行,而是源站的缓存语义没讲清: Cache-Control/ETag/Vary 不一致、TTL 乱、带 cookie 的页面被默认 bypass。 下面按“先把缓存语义讲清→再验证命中→最后做排障”的顺序写。

1)为什么 HTML 页面很难命中?

很多时候先卡住的是如果你已经在线上做过一轮排查,会发现很多故障并不是单点出错,而是多个小问题叠在一起。

2)ETag 有了就一定快吗?

经验上更值得先看如果你是在 Windows 环境里操作,优先检查路径、编码和权限,别一上来就怀疑服务本身。

  • 静态资源建议带
  • ETag/Last-Modified 用于协商缓存(304),但要避免被中间…

判断 2:步骤 2:命中验证(不要只凭感觉)

步骤 1:先把缓存语义讲清(Cache-Control/ETag/Vary) 静态资源建议带 ETag/Last-Modified 用于协商缓存(304),但要避免被中间层改写导致抖动。 会把缓存按请求头拆分(例如 Accept-Encoding),要用对。 步骤 2:命中验证(不要只凭感觉) 同一资源连续请求两次,看…

补齐一个关键判断点 3

经验上更值得先看如果你已经在线上做过一轮排查,会发现很多故障并不是单点出错,而是多个小问题叠在一起。

补齐一个关键判断点 4

先确认如果你是在 Windows 环境里操作,优先检查路径、编码和权限,别一上来就怀疑服务本身。

  • 会把缓存按请求头拆分(例如 Accept-Encoding),要用对。
  • 同一资源连续请求两次,看第二次是否 HIT / Age 增长。

判断 3:步骤 3:回源慢的定位顺序(先看源站,再看 CDN)

步骤 1:先把缓存语义讲清(Cache-Control/ETag/Vary) 静态资源建议带 ETag/Last-Modified 用于协商缓存(304),但要避免被中间层改写导致抖动。 会把缓存按请求头拆分(例如 Accept-Encoding),要用对。 步骤 2:命中验证(不要只凭感觉) 同一资源连续请求两次,看…

补齐一个关键判断点 5

先确认如果你已经在线上做过一轮排查,会发现很多故障并不是单点出错,而是多个小问题叠在一起。

补齐一个关键判断点 6

优先检查如果你是在 Windows 环境里操作,优先检查路径、编码和权限,别一上来就怀疑服务本身。

  • 如果命中率低,优先排:cookie、查询串、不同 host、不同压缩。
  • 源站自身慢:应用/数据库/磁盘 IO/连接数。

判断 4:常见问题 FAQ

不一定。 ETag 只是协商缓存,仍要发请求;真正省带宽/省回源的是合理 TTL + 命中策略。

补齐一个关键判断点 7

优先检查如果你已经在线上做过一轮排查,会发现很多故障并不是单点出错,而是多个小问题叠在一起。

补齐一个关键判断点 8

别急着改配置,先看如果你是在 Windows 环境里操作,优先检查路径、编码和权限,别一上来就怀疑服务本身。

  • 超时配置不匹配:CDN 回源超时、源站 keepalive。
  • 回源链路:DNS、TLS 握手、跨地域延迟。

落地清单(上线前自检)

  • 静态资源建议带
  • ETag/Last-Modified 用于协商缓存(304),但要避免被中间层改写导…
  • 会把缓存按请求头拆分(例如 Accept-Encoding),要用对。
  • 同一资源连续请求两次,看第二次是否 HIT / Age 增长。
  • 如果命中率低,优先排:cookie、查询串、不同 host、不同压缩。

延伸问题 FAQ

很多问题不是不会,而是做到了 80 分却不知道剩下 20 分补在哪。

为什么很多人做“CDN 排障指南”时,总觉得步骤都懂了但结果还是不稳?

常见原因不是不会照着做,而是少了前置判断、环境确认和验证闭环。尤其在教程型场景里,真正决定效果的往往是顺序、边界条件与回滚意识。

遇到“步骤 2:命中验证(不要只凭感觉…”相关问题时,第一步先查什么?

先确认最基础的输入是否正确,再看链路上最靠前的一层是否已经出错。实操里最省时间的方式,不是一次查十项,而是优先核对 步骤 2:命中验证(不要只凭感觉) 对应的关键前提。

什么时候不建议继续沿用文中的默认做法?

当你的环境已经从个人调试升级到团队协作、线上长期运行或跨系统依赖时,就不该只追求“先跑通”,而要补上权限、日志、监控与变更记录。

上一篇 VPS 排查指南:常见失败原因与分层定位步骤
下一篇 VPS 排查指南:SSH 连不上/CPU 飙高/磁盘爆满怎么查