nginx空主机头关闭方法(防止域名乱指向)

发布时间:2019-07-27编辑:脚本学堂
有关nginx关闭空的主机头的方法,可以通过设置禁止空主机头的指向,为了防止域名解析恶意指向我们的站点,需要将nginx默认的空主机头禁止。

nginx主机头关闭方法

nginx的默认配置中的虚拟主机允许用户通过IP访问,或通过未设置的域名访问(比如他的域名指向了你的ip)
这是因为默认配置中的server区域里有这一行:
 

listen 80 default;

后面的default参数表示这个是默认虚拟主机,接受所有指向过来的域名

比如别人通过ip或者未知域名访问你的网站的时候,希望禁止显示任何有效内容,可以给他返回500.
 

复制代码 代码示例:
server {
listen 80 default;
return 500;
}

收集流量,导入到自己的网站,做以下跳转设置:
 

server {
listen 80 default;
rewrite ^(.*) http://www.yourdomain.com permanent;
}


linux系统下禁止nginx空主机头

为了防止域名解析恶意指向,需要禁止nginx默认的空主机头,操作如下
vi /usr/local/nginx/conf/nginx.conf#配置文件
找到server,在上面一行添加:
 

server {
listen80 default;
server_name  _;
location / {
root   html;
return 404;
}
location ~ /.ht {
deny  all;
}
}
/etc/rc.d/init.d/nginx restart #重启nginx
 

这样设置之后,空主机头访问会直接跳转到nginx404错误页面。

禁止nginx空主机头

为了防止域名解析恶意指向我们的站点,需要将nginx默认的空主机头禁止。修改nginx.conf ,使其主机头返回500

nginx目录:/usr/local/nginx/conf/nginx.conf 找到:
 

server   {
listen80;
server_name localhost;
index index.html index.htm index.php;
root  /home/wwwroot; }

替换,有三个方案可供选择。

方案一、
直接屏蔽未绑定域名的虚拟主机访问,返回500错误
 

server{
listen  80;
return 500;
}


方案二、
收集流量,导进到指定的网站,设置如下(做个重定向):
 

server{
listen 80;
default; rewrite ^(.*) http://www.jb200.com permanent;   }

方案三、
禁止通过IP访问,可以写成:
 

server {
listen 80  default;
server_name _;
return 500;
}