问题出现得很突然,日志倒是留得挺全。收录量一天内掉四成,翻服务器日志发现蜘蛛请求几乎为零,像是一整天都没来过。
原因不止一个,得分开看。日志轮转把当天文件切走,查错了文件。另一种情况是CDN 层拦下请求,源站看不到访问。
还有一种情况,解析异常,蜘蛛连不到源站。
上来先找当天的日志文件
ls -lt /var/log/nginx/ | head -5
随后按 UA 统计历史文件
zgrep -c 'Googlebot' /var/log/nginx/access.log.1
从 CDN 侧看回源
curl -sI https://www.example.com/ | grep -i 'x-cache'
剩下的就是核对解析结果
dig +short www.example.com
这次没动代码,只在配置和运行环境上找原因。
隔了一天再看,现象没变,说明不是偶发。
那几天正好在做别的变更,先把时间线对齐才敢动手。
别只看报错消失,验证要多做一步。在正确的日志或 CDN 报表里能看到蜘蛛请求,收录量两天内止跌,抓取量恢复。
日志为空往往比报错更可怕,说明请求根本没到源站,先查链路再查代码。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
