最小修复试验的核心是只改一个变量、只影响一小部分访问、先留好回退路径,再用可对比的数据判断缓存问题是否真的被修复。不要一次性清空整站缓存或同时改多个规则,否则即使页面恢复正常,也无法知道是哪一步起了作用。
网站缓存可能出现在浏览器、CDN、反向代理、应用层或数据库查询层。不同层的表现不同,处理方式也不同。开始试验前,先记录以下信息:
Cache-Control、Age、ETag、Last-Modified、X-Cache 等字段。如果只有登录用户看到旧内容,问题更可能在应用层或浏览器私有缓存;如果所有访客都看到旧内容,且响应头里 Age 较大,问题更可能出在 CDN 或反向代理。这一步只是缩小范围,不是最终结论。
最小修复试验不追求一次解决全站,而是先在一个可控范围内验证判断。可以按下面的顺序安排:
Cache-Control 的 max-age,或对特定路径绕过缓存。假设某产品页更新后仍显示旧价格,可以先只对该产品页设置较短的缓存时间,观察它是否在预期时间内更新。如果更新了,说明问题与缓存时长有关;如果没更新,再检查应用层是否返回了旧数据。这个例子只用于说明试验设计,不代表任何真实项目结果。
样本页恢复正常,不等于整站缓存机制已经修好。判断时要看对照页是否保持原状、其他同类页面是否仍异常、以及问题是否在清除缓存后再次出现。可以按以下标准记录:
如果响应头显示缓存已过期但内容仍旧,可能原因包括上游源站仍返回旧内容、多级缓存未同步、或页面由动态逻辑拼装。此时不要断言唯一原因,应继续用对照试验逐项排除。
最小试验通过后,再按同一逻辑扩大范围:先覆盖同一模板下的少量页面,再覆盖同一目录,最后才考虑全站规则。每次扩大范围前,保留上一次的配置和观察结果。复查时至少确认三点:目标页面是否更新、非目标页面是否被误伤、回退后是否能恢复原状。
如果问题涉及搜索引擎抓取,需要单独核查。robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。缓存修复完成后,可以检查搜索引擎抓取工具看到的响应内容是否与访客一致,但不同搜索引擎的支持情况须分别核查。
下一步:为当前问题页面建立一张最小记录表,写明样本 URL、对照 URL、改动的那一条规则、观察时间点和回退方式,然后再执行第一次试验。