nginx中deny和allow详解

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,则怎么处理?
#答:allow


http {
    deny all;
    server {
        allow 10.0.9.14;
        listen 8813;
        location / {
        }
    }
}
#问,除了10.0.9.14,其它的ip是否能够访问?
#答,可以。因为server中已经有了allow或deny指令,所以http中的不生效。没写allow和deny的ip默认是allow


http {
    deny all;
    server {
        listen 8813;
        location / {
        }
    }
}
#问:所有ip能否访问?
#答:不能,因为http中的deny all生效了。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值