别的域名也能访问我的网站是怎么回事?| Linux下nginx如何禁止空主机头?

作者:不要哭啦

发布时间:2017-05-09T12:33:52

如果 Nginx 配置了空主机头,那么任意域名解析指向到服务器IP,都可以访问站点,为了防止域名解析恶意指向主机,可以将 Nginx 默认的空主机头禁止,方法是通过修改 Nginx 的主配置文件 nginx.conf ,使其主机头返回错误信息 500

  1. 直接屏蔽未绑定域名的虚拟主机访问,返回500错误(这个错误信息可以自定义):
server 
{
     listen  80; 
     return 500;
}
  1. 可以做一个URL重写,把访问的流量导入到需要的网站,比如说网站的主页,配置的时候http://www.yourdomain.com替换成需要的URL即可:
server
{ 
     listen 80 default;
     rewrite ^(.*) http://www.yourdomain.com permanent;  
}
  1. 禁止空主机头的同时也禁止通过IP访问,可以写成:
server
{    
    listen 80  default;     
    server_name _;     
    return 500;   
}