运维发布时顺手改了 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 和站点地图属于发布物,应该和代码一起走审核,不能靠人记得。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189