nginx 禁止ip直接访问问题解析

发布时间:2019-12-28编辑:脚本学堂
有关nginx禁止以IP直接访问的配置示例,以及屏蔽掉ip访问,只允许域名访问的设置问题,需要的朋友参考下。

nginx升级为1.5.7后,在nginx.conf中添加如下配置后,本以为可以实现nginx禁止ip访问的需求了,但ip还是可以直接访问80。
 

server {
listen 80 default;
return 500;
}
 

这种配置也不行了
 

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

检查一下$host是不是ip就可以啦。
如果想屏蔽掉ip访问,只允许域名访问的话,可以增加如下配置。
 

server {
    #....
    if ( $host ~* "d+.d+.d+.d+" ) {
        return 400;
    }
    location / {
        #....
    }
}
 

这样,当用ip访问时,$host的值就为IP地址,如果$host否和ip的正则,就直接返回400给客户端。