nginx在location配置访问控制不起作用

环境描述:

       

nginxnginx/1.12.2
涉及nginx模块--without-http_access_module
linuxCentOS Linux release 7.6.1810 (Core)
使用vmware虚拟机作为服务器

 

Syntax:allow address | CIDR | unix: | all;
Default:
Context:httpserverlocationlimit_except
Syntax:deny address | CIDR | unix: | all;
Default:
Context:httpserverlocationlimit_except

 

问题描述:

       在配置nginx限制ip访问时发现配置不起作用,限制的ip仍旧可以访问,location配置如下

location ~ ^/admin.html {
                root /opt/app/code;
                allow all;

                deny 192.168.136.1;
                index index.html index.htm;
}

配置完成后,发现使用192.168.136.1主机仍然可以访问,如下图

解决:

查看官网可知

    The rules are checked in sequence until the first match is found. In this example, access is allowed only for IPv4 networks 10.1.1.0/16 and 192.168.1.0/24 excluding the address 192.168.1.1, and for IPv6 network 2001:0db8::/32. In case of a lot of rules, the use of the ngx_http_geo_module module variables is preferable.

他会依次检查规则,直至找到第一个匹配项,也就是说如果匹配第一个,就不会再往后面找了

      经测试发现,allow或者deny中有指定限制具体ip的放在上面即可,如上解决配置

location ~ ^/admin.html {
                root /opt/app/code;

                deny 192.168.136.1;
                allow all;
                index index.html index.htm;
        }

如果配置的只允许某ip访问,如果无法限制,也是同样的问题。

 

 

 

 

   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值