记录一下那天晚上的排查过程。活动页做过一次 301 到专题页,缓存策略沿用了静态资源的一年。活动下线后跳转规则删了,节点上的 301 还在,用户和蜘蛛一直跳到已经 404 的专题。
刚开始盯着「301 本身是永久语义,回滚成本高」,折腾了半个多小时,排掉了。
这类报错背后常见的原因有几处,逐个排除就行。跳转响应套用了静态资源的缓存时长。还有一种是规则删除后没有主动刷新节点。
少数情况下是监控只测源站,从来没测过边缘。
动手时先看跳转响应的缓存头
curl -sI https://www.example.com/act/ | grep -i -E 'HTTP|cache'
强制刷新该路径
curl -X PURGE https://www.example.com/act/
接着把跳转缓存改成短时或禁止缓存
add_header Cache-Control 'no-store';
从
多
怎么算真的好了,看的是同一批现象。刷新并改成不缓存后,各节点都返回 404 而不是 301,专题页的误跳转消失,死链报告也不再增长。
这里还有个坑。301 天生是永久语义,配上一年的缓存,等于把一个临时决定钉死在所有节点上。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
