Nginx限制某个IP访问

限制某个IP对站点访问,这个有很多方法,比如硬件防火墙、IPTABLES、Web服务器上,也可以在应用里面设置允许的IP,此处以Nginx为例设置,也就是经常说的白名单或黑名单:
ip段说明:
  段位从小到大排列,如127.0.0.0/24 下面才能是10.10.0.0/16
  24表示子网掩码:255.255.255.0
  16表示子网掩码:255.255.0.0
  8表示子网掩码:255.0.0.0
设置某个IP或IP段禁止访问站点:
新建deny.conf,加入以下内容:

deny 192.168.1.1;
deny 10.10.0.0/16;

在nginx的server段引用include deny.conf; reload后192.168.1.1这个IP和10.10.0.0/16这个段的IP无法访问站点;
如果要设置某个目录直接在location下面引用即可:如下

       location ~* ^/plart/.*$ {
         include deny.conf;
         proxy_pass http://static;
         include proxy.conf;
         error_log  logs/plart_error.log info;
         access_log  logs/plart_access.log  main;
       }

只允许某个IP访问,其他IP都不允许:
在deny.conf里面加入:

allow 192.168.1.2;
allow 192.168.0.0/24;
deny all;

这样写,只允许192.168.1.2和192.168.0.0段的IP访问,其他IP全部拒绝;
设置不允许访问以后的提示:

error_page 403 /error.html;
    location = /error.html {
    root  html;
    allow all;
}

这样设置以后不允许访问的IP,访问站点的时候会显示error.html文件的内容。

 

转自:https://www.unixso.com/tag/nginx/

posted @ 2016-04-18 14:23  都市烟火  阅读(1409)  评论(0编辑  收藏  举报