当源站返回正常、但用户经边缘节点访问出现异常时,先别急着改源站配置。你要保留的是一组能区分“源站问题、回源链路问题、边缘缓存问题、客户端或地区网络问题”的证据,核心是同一URL在源站直连与边缘节点两条路径上的响应差异,以及这个差异随时间的变化。缺少这组对照,后续任何处理都只能靠猜。
边缘异常往往只在特定URL、特定请求头或特定地区出现。你需要先选一条能稳定触发问题的URL,记录完整请求条件:请求方法、完整路径与查询串、是否带Cookie、User-Agent、Accept-Encoding、请求来源IP或地区。用同一条件分别请求源站直连地址和边缘节点地址,各做多次,观察结果是否一致。
这一步的实际动作是建立“对照请求记录”。如果源站直连每次都正常、边缘节点间歇性异常,那么问题更可能在边缘缓存、回源或节点链路,而不是WordPress程序本身。反过来,如果源站直连也偶发异常,只是边缘放大了它,那就要回到源站和应用层排查。这个判断会直接决定下一步是联系主机商还是继续查插件与数据库。
边缘节点的行为大量体现在响应头里。对每次对照请求,保存完整的响应头,重点看状态码、缓存命中标识、回源标识、Age、Cache-Control、Vary、CDN或代理自定义头。不要只截图页面内容,页面内容相同不代表缓存路径相同。
把这些头按时间排列,能看出一致性:是持续错误,还是缓存过期瞬间的错误,还是只在某类请求上错误。持续错误更偏向配置或节点故障,间歇错误更偏向缓存与回源竞争。
边缘异常常常是间歇性的,单次抓取说明不了问题。你需要保留一段时间的请求记录,标明每次请求的时间、路径、结果、所用节点或地区。至少覆盖一个完整的缓存周期,这样能看到异常是否与缓存刷新、回源失败或节点切换相关。
同时记录影响范围:是同一地区所有用户都异常,还是只有部分网络异常;是只有静态资源异常,还是HTML也异常;是只有登录用户异常,还是匿名访问也异常。范围越具体,越能排除无关变量。例如只有某地区异常,通常指向边缘节点或本地网络;只有静态资源异常,通常指向缓存规则或回源路径。
这里要说明一个常见误判:边缘节点异常时,源站访问日志可能完全正常,因为请求根本没到源站,或者回源请求被边缘合并了。源站日志正常不能单独证明边缘没问题,只能说明源站没收到那部分请求。
除了响应头,还要保存两侧的原始响应体,至少保存出问题的那个URL。不要只保存渲染后的截图,因为截图丢失了HTML结构、资源引用和内联数据。用命令行工具或浏览器开发者工具导出原始HTML和关键静态资源,标注抓取时间和路径。
对比两侧内容时,重点看差异位置:是整页不同,还是某个片段不同;是资源URL被改写,还是内容被旧缓存覆盖。假设一个场景:边缘返回的HTML里引用的CSS文件名是旧版本,而源站返回的是新版本。这通常指向边缘缓存了旧HTML,而不是源站发布失败。此时正确的下一步是核查边缘缓存刷新与缓存键,而不是重新发布文章。
如果边缘返回的是错误页或挑战页,也要完整保留,包括其中的错误码、请求ID和节点标识。这些字段往往是向主机商或CDN支持提交工单时唯一能定位请求的线索。
证据不是越多越好,而是要让别人能复现。整理时按下面顺序组织,能显著提高处理效率:
提交给主机商或边缘服务支持时,附上这些内容,并明确说明“源站直连正常、边缘节点异常”的对照结果。如果对方要求你清缓存或换节点,先记录操作前后的同一组请求结果,再判断操作是否真正改变了异常。这一步的结果会决定你是继续在边缘侧排查,还是回到WordPress应用层。缺少操作前后的对照,你无法知道问题是被修复了,还是只是暂时没复现。