事情本身不复杂,线索都在日志里。服务器换新 IP 后没做默认站点限制,用 http://1.2.3.4/ 也能打开整站,两个月后搜索里出现一份 IP 域名的索引,标题和正文与主站一样,权重被分走。

第一反应是「IP 访问地址被外部日志和扫描器抓取后传播」,验证下来不成立。

真正麻烦的地方在于,几个原因的现象几乎一样。Nginx 没配默认 server,IP 访问落到第一个站点。还有一种是页面没有校验 Host,canonical 输出的是相对路径。

还有一种情况,没有对 IP 访问做 301 或直接拒绝。

上来先确认 IP 直连返回什么

curl -sI http://1.2.3.4/ | head -3

接着加默认 server 直接拒绝

server { listen 80 default_server; server_name _; return 444; }

再往下让 canonical 输出绝对地址

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

复查 IP 地址是否还被索引

site:1.2.3.4

这类改动我都写进变更记录,过两周再出问题时能对上号。

改完先别撤,确认这几项。IP 直连返回 444,canonical 全为绝对地址,IP 域名的收录条目一个月内消失。

只靠 canonical 合并不够,IP 地址本身就不该能访问,先关掉入口再谈信号合并。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189