先给结论:源站正常、边缘节点异常时,最该保留的不是“谁对谁错”的结论,而是能证明差异发生在哪一层的原始材料。具体包括:同一 URL 在源站与边缘节点的完整响应头、状态码与响应体摘要,带时间戳的请求标识,边缘缓存与回源记录,以及规则版本与生效时间。只保留边缘侧截图或只保留源站日志,都不足以支撑后续判断。
典型情形是:直接回源请求返回 200,内容正确;但经过边缘节点访问时,同一路径出现 403、404、空响应或旧内容。此时有两种合理解释。
解释一:边缘层拦截或改写。边缘的 WAF、Bot 管理、缓存规则或重写规则在源站之前生效,请求根本没有以预期形态到达源站,或响应在返回途中被替换。
解释二:源站对边缘回源身份的处理不同。边缘回源时使用的 IP、UA、Host 或请求头与直连请求不同,源站可能对这类回源请求返回了不同结果,只是直连测试没复现。
这两种解释会导致完全不同的修复动作:前者要改边缘规则,后者要改源站对回源请求的判定。仅凭“源站正常”这一条,无法区分。
要区分上述两种解释,需要同时保留两侧的原始记录,并保证它们能按同一请求对齐。
Server、Via、Age、Cache-Control、X-Cache 类字段,以及任何自定义头。响应头能显示响应由哪一层生成、是否命中缓存。其中,request ID 与规则版本是最关键的两项。缺少它们,其余证据只能形成弱相关,无法排除巧合。
假设某路径直连源站返回 200,经边缘访问返回 403。保留证据后发现:边缘日志中该请求的 WAF 规则命中记录,与规则版本变更时间相差数分钟;同时边缘回源记录显示该请求并未到达源站。这组证据指向解释一,即边缘层拦截。
反过来,若边缘日志显示请求已回源,且回源请求的 UA 与直连测试不同,源站日志中对应 request ID 返回 403,则指向解释二。此时下一步动作应是调整源站对回源身份的判定,而不是修改边缘拦截规则。
这个例子是假设的比较方法,不代表任何真实项目结果。它的价值在于说明:证据必须能指向“请求在哪一层被改变”,而不只是证明“两层结果不同”。
保留证据时要注意几个边界,否则容易把相关当成因果。
实际动作上,建议在异常复现时立即冻结两侧日志片段、导出规则版本快照,并用同一 request ID 做一次配对核对。配对成功后再决定改边缘还是改源站;配对失败时,先补齐标识与时间同步,再谈修复。这一步的结果直接决定后续动作的方向,跳过它容易在错误的一层反复调整。