早上来到公司,发现前端错误上报页面有一个非公司域名上报的错误,于是很纳闷为什么别人的网站会向我们的错误监控接口报错呢?然后访问了一下这个域名,发现打开的内容居然是公司站点。网上查找了一下‘’为什么别人的域名会指向自己的服务器‘’,得到的反馈大多是别人把 未备案的域名 解析到自己的服务器IP而导致服务器IP被封,也有一些是为了骗收录和钓鱼网站。出现这种情况的原因是没有关闭空主机头。
该怎么防止别人的域名能访问我们的网站呢,Nginx下关闭空主机头:
返回500或304
#设置IP或其它域名访问时返回500或304
server{
listen 80 default;
server_name _; ##标示空主机头
return 500;
}
或将流量引到自己的网站
#设置IP或其它域名访问时重定向到www.xxx.com
server{
listen 80 default;
server_name _; ##标示空主机头
rewrite ^(.*) http://www.xxx.com;
}
空主机似乎是IIS的概念,我的理解是这个配置是一个默认配置,类似于switch结构里的那个捡漏的default,总之就是没有定义的情况就使用这段配置。
经过这样的配置之后使用服务器IP或者非配置的域名访问时就会返回错误或被重定向了。