先给结论:当源站直连返回正常、但通过 CDN 或边缘节点访问异常时,最该保留的是能区分“源站问题”和“边缘问题”的时间戳证据。最小动作是立即记录源站直连响应、边缘响应头、请求 URL 和发生时间,并连续采样多次。这些记录只能证明两条路径表现不同,不能直接证明是 CDN 故障、DNS 解析错误或源站防火墙拦截,必须结合后续复查才能定位。
这一步决定了你能保留什么级别的证据。有源站直连权限时,可以用 curl 或浏览器直接请求源站 IP,记录状态码、响应头和耗时;没有直连权限时,只能依赖边缘返回的响应头和缓存状态,证据强度会弱很多。
假设一个场景:同一 URL 通过边缘节点返回 502,但源站直连返回 200。此时至少说明边缘到源站的回源链路可能有问题,但不能推出源站一定健康,因为边缘请求可能命中了不同的后端节点或不同的 Host 头。
优先保留以下内容:
Via、X-Cache、Age、CF-Cache-Status 等缓存标识。这些证据的作用是:如果源站直连持续正常而边缘持续异常,且错误页带有请求 ID,下一步就可以拿这个 ID 去 CDN 控制台或工单系统查询边缘节点的处理日志。如果源站直连也间歇异常,则问题更可能在源站本身,而不是边缘。
此时只能保留边缘侧可观察到的信息:
没有直连权限时,不能断言源站正常。边缘返回 200 也可能来自缓存,边缘返回 502 也可能是因为源站拒绝回源。此时能做的动作是:连续多次请求同一 URL,观察错误是否稳定复现。如果错误只在特定路径或特定参数下出现,更可能是回源规则或缓存键配置问题;如果全站所有路径都异常,则更可能是边缘节点或回源链路整体异常。
请求量或抓取量归零不能单独证明边缘节点故障。它还可能来自:爬虫自身调整、robots.txt 被误改、站点地图失效、DNS 解析变更尚未生效。同样,边缘返回 200 也不能证明源站正常,因为缓存可能掩盖了源站错误。
一个常见误判是:看到边缘返回 502 就立刻去重启源站。如果源站直连一直正常,重启源站不会解决边缘问题,反而会丢失现场。更合理的顺序是:先保留边缘错误页和请求 ID,再检查 CDN 的回源配置和缓存规则,最后才考虑源站侧变更。
无论有没有直连权限,都可以立即执行一个动作:用同一 URL、同一 Host 头,在固定时间间隔内连续请求边缘节点至少三次,记录每次的状态码、响应头和耗时。如果三次结果一致,说明异常稳定复现,可以带着这批记录去查 CDN 回源日志或提交工单。如果三次结果不一致,说明问题可能是间歇性的,需要拉长观察窗口,不能仅凭一次异常就下结论。
这些记录能帮助你决定下一步是查 CDN 配置、查源站防火墙,还是查 DNS。但它们不能证明“边缘节点一定坏了”,也不能证明“源站一定没问题”。源站正常而边缘异常,还可能是因为回源请求被源站安全策略拦截、回源 Host 头配置错误、或边缘节点到源站的网络路径临时抖动。保留证据的目的是缩小排查范围,而不是跳过排查直接归因。