deny和allow都是在access阶段
allow和deny都可以在http,server,location,limit_except中使用
如果被deny则会返回“403 Forbidden”报错信息
以下几个场景能够说明清楚这2个命令的具体是怎么用的
location / { deny 192.168.1.1; #支持单个IP allow 192.168.1.0/24; #支持一个网段 allow 2001:0db8::/32; #支持ipv6 deny all; #支持all匹配到所有}# 问:192.168.1.1 匹配到了上面的第1,2,4行,请问该ip是deny还是allow?# 答:deny和allow是顺序匹配,匹配到即停止。所以第一条匹配到后,就直接deny了server { allow 10.0.9.14; listen 8813; location / { deny 10.0.9.14; }}#问:10.0.9.14在server中allow和locaton中deny都匹配到,到底是哪个生效?#答:deny生效。参考变量的生效规则。#问:如果一个ip没有被deny也没被allow,则怎么处理?#答:allowhttp { deny all; server { allow 10.0.9.14; listen 8813; location / { } }}#问,除了10.0.9.14,其它的ip是否能够访问?#答,可以。因为server中已经有了allow或deny指令,所以http中的不生效。没写allow和deny的ip默认是allowhttp { deny all; server { listen 8813; location / { } }}#问:所有ip能否访问?#答:不能,因为http中的deny all生效了。
来源地址:https://blog.csdn.net/sinat_24354307/article/details/126448475