运维发布时顺手改了 robots.txt,巡检没覆盖这条路径,整站被误封两天,直到流量掉了一半才发现。
这类报错背后常见的原因有几处,逐个排除就行。巡检清单只查页面,不查 robots 和站点地图;发布流程没有配置文件差异审核;robots 变更没有告警,只能人工比对;CDN 缓存的旧文件掩盖了源站改动。
先把 robots 内容纳入快照
curl -s https://www.example.com/robots.txt | md5sum
与上一次快照比对
diff robots.now robots.prev
变更后立即告警
curl -s https://www.example.com/robots.txt > robots.now && diff -q robots.now robots.prev || echo changed
发布流程加配置差异检查
git diff HEAD~1 -- nginx/robots.txt
那几天正好在做别的变更,先把时间线对齐才敢动手。
排查用的命令都是临时敲的,没有写成脚本,事后才整理。
手上没有现成的复现脚本,就照着线上请求手工拼了一个。
别只看报错消失,验证要多做一步。下一轮发布改到 robots 时告警立即触发,误封没有再发生。
补一句。robots 和站点地图属于发布物,应该和代码一起走审核,不能靠人记得。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
