nginx中ngx_http_access_module模块能够按客户端地址设置是否有访问权限。
allow
指令设置允许访问的IP或网络,如allow 172.17.0.8;
、allow 172.17.0.0/16;
deny
指令设置限制访问的IP或网络,如deny 172.17.0.8;
、deny 172.17.0.0/16;
allow
和deny
这两个指令都可以配置在http, server, location, limit_except
块中。一个配置块中如果配置了多个
allow
或deny
指令,按先后顺序逐条匹配,第一个匹配成功的规则立即生效不会再检查后面的规则。如何检查规则是否匹配:请求的客户端的IP与allow或deny指令后的IP/网络是否匹配。
如以下配置中:172.17.0.8不能访问,172.17.0.0/16网络中的其它地址都能访问。因为来自172.17.0.8的请求匹配到第一条规则
deny 172.17.0.8;
后禁止访问。而172.17.0.7能够访问是因为allow 172.17.0.0/16;规则生效。allowallow 172.17.0.0/16;server {
listen 8366;
location / {
deny 172.17.0.8;
allow 172.17.0.0/16;
deny all;
root html;
index index.html index.htm;
}
}修改以上配置,将第一、二条规则交换顺序后,172.17.0.8可以访问。因为第一条规则
allow 172.17.0.0/16;
匹配成功后不会再往后执行deny 172.17.0.8
。server {
listen 8366;
location / {
allow 172.17.0.0/16;
deny 172.17.0.8;
deny all;
root html;
index index.html index.htm;
}
}
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://zblog.hqyman.cn/post/10218.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~