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文件的内容。