问题出现得很突然,日志倒是留得挺全。内网生成的内容带了 8080 端口,sitemap 里写的是带端口的地址,canonical 是标准端口,蜘蛛把两者当成不同站点。

真正麻烦的地方在于,几个原因的现象几乎一样。生成环境读取了内部访问地址。还有一种是反向代理没有透传真实主机头。

另外,发布流程里没有做域名替换。

第一件事是看 sitemap 里的端口

curl -s https://www.example.com/sitemap.xml | grep -o 'https://[^<]*' | head -3

透传真实主机头

proxy_set_header Host $host;

接着核对页面规范地址

curl -s https://www.example.com/post/ | grep -o 'canonical"[^>]*'

剩下的就是确认没有内部端口请求

grep -c ':8080' access.log

报错是间歇性的,我蹲守了半小时才抓到一次完整现场。

白天有业务在跑,能验证的部分都压到了晚上做。

怎么算真的好了,看的是同一批现象。sitemap 与规范地址前缀完全一致,日志里不再出现内部端口请求,收录恢复正常。

提醒一点。端口不同就是不同源,这类问题常出现在容器和网关改造之后。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189