nginx空主机头问题:nginx禁止空主机头域名指向

发布时间:2020-07-18编辑:脚本学堂
有关nginx禁止空主机头域名指向的配置教程,在nginx中如果留有空主机头,会被人恶意指向别的网站,这里介绍了nginx关闭空主机头简单方法,供大家参考。

nginx如何禁止空主机头域名指向?

空主机头域名指向是指,比如www.aaa.com的站点,用www.bbb.com域名指向了aaa.com的IP,这样访问www.bbb.com也能显示aaa.com的内容了。参考链接:nginx 禁止ip访问与关闭空主机头

在nginx配置文件中,已定义了空主机头返回404页面。

vim /etc/nginx/nginx.conf

如下:
 

复制代码 代码示例:

server {
limit_conn addr 10;
listen80;
server_name  _;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
root   /usr/share/nginx/html;
index  index.html index.htm;
}

error_page  404/404.html;

location = /404.html {
root   /usr/share/nginx/html;
}

error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   /usr/share/nginx/html;
}
...后面省略
}

只要将定义网站的server段放在它的后面就能实现空主机头的域名都返回404页面。

如果nginx.conf没有这个内容将第一个server段设置成这样就可以了。


样例:
返回500错误
 

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

跳转到自己域名首页
 

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

二、nginx关闭空主机头简单方法

空主机头就是随便一个IP指过你服务器都可以正常打开了,这个打开的是你主机中一一个网站,那么nginx关闭怎么空主机头呢,下面我来一起来看看。


之前新一有在博客中说过自己买了一台vps,今天看到一个陌生域名解析到这台vps上面了。这样被人家恶意解析,对自己资源是一种浪费。对seo也不很不友好的。所以新一准备关闭空主机头。
 

server {
listen 80 default;
return 500;
}
 

把上面的配置放到nginx.conf的http模块中,然后重启nginx就可以了。

为nginx设置默认虚拟主机(空主机头,默认主机头)

关键,在server的设置里面添加这一行:
listen 80 default;
后面的default参数表示这个是默认虚拟主机。

这个设置非常有用。

比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.
目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。就可以这样设置:
 

server {
listen 80 default;
return 500;
}

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

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