nginx作为正向和反向代理服务器中设置IP白名单/黑名单
|
admin
2025年6月28日 22:26
本文热度 41
|
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;
}
}
阅读原文:原文链接
该文章在 2025/7/1 23:43:04 编辑过