nginx 禁止ip访问配置实例

发布时间:2020-08-20编辑:脚本学堂
本文介绍了在nginx中禁止IP直接访问的配置方法,nginx禁止ip访问应用场合广泛,禁止显示任何有效内容,仅返回500错误消息,供大家学习参考。

nginx中禁止以ip直接访问网站,可以在server段添加一行:
 

listen 80 default;

其中default参数表示默认虚拟主机。

nginx禁止ip访问应用场合广泛,当别人通过ip访问你的网站时,禁止显示任何有效内容,仅返回500错误消息。

另外,关闭空主机头,防止未备案的域名指向的设置方法:
 

server { 
      listen 80 default; 
      return 500; 
   }

导入流量的配置方法:
 

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

按照如上设置后,确实不能通过IP访问服务器了,但是在应该用中出现当server_name后跟多个域名时,其中一个域名怎么都无法访问,设置如下:
 

server  { 
listen 80; 
server_name www.example.com example.com   
   }
 

没更改之前,通过server_name 中的www.example.com example.com均可访问服务器,加入Nginx 禁止IP访问的设置后,通过example.com无法访问服务器了,www.example.com可以访问,用 Nginx -t 检测配置文件会提示warning:
   [warn]: conflicting server name “example.com” on 0.0.0.0:80,
      ignored 
   the configuration file /usr/local/Nginx/conf/
      Nginx.conf syntax is ok 
   configuration file /usr/local/Nginx/conf/Nginx.
      conf test is successful

最后,通过在listen 80 default;后再加server_name _;解决,形式如下:
 

#禁止IP访问 
   server  { 
       listen 80 default; 
       server_name _; 
       server_name www.example.com example.com
       return 500; 
   }
 

这样,通过example.com就能访问服务器了。