事情本身不复杂,线索都在日志里。服务器换新 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 地址本身就不该能访问,先关掉入口再谈信号合并。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
