域名解析里留了两条 A 记录,一条指向新负载均衡,一条指向没下线的旧机器。蜘蛛的请求有一半落在旧机器上拿到 502,抓取量看起来正常,索引却一直在掉。
把日志和配置对完,能解释这个现象的基本就这几处。DNS 里迁移前的 A 记录没有删除;旧机器上的配置是三个月前的版本,robots 与站点地图都不一样;监控只看了域名的整体可用性,没区分后端;健康检查只探首页 内页的 502 一直没有被告警。
先查解析里到底有几条记录
dig +short www.example.com A
随后删掉旧记录并把 TTL 降到 300
dig @8.8.8.8 +short www.example.com
接着在旧机器上加日志确认还有多少流量
tail -f access.log | grep -c 'GET /'
末了核对两条路径返回是否一致
for ip in 10.0.0.1 10.0.0.2; do curl -s -H 'Host: www.example.com' http://$ip/robots.txt | head -3; done
改完先别撤,确认这几项。删掉旧记录并等待 TTL 过期后,502 占比从 48% 降到 0,索引量在两周内停止下滑并开始回升。
补一句。多 A 记录在迁移期间很常见,蜘蛛按解析结果随机命中,一条没删干净的旧记录就能让收录持续掉。报错文案容易误导,真正的原因往往在相邻那一层的日志里。
