nginx php deny,nginx访问控制 ngx_http_access_module之 allow、deny详解

狄彬彬
2023-12-01

只看nginx模块名ngx_http_access_module,很多人一定比较陌生,但是说到deny和allow相比没一个人不知道的,实际上deny和allow指令属于ngx_http_access_module.我们想控制某个uri或者一个路径不让人访问,在nginx中就得靠它了。

nginx的访问控制模块语法很简单,至少比apache好理解,apache的allow和deny的顺序让很多初学者抓头.好了具体看下这个模块的使用方法吧。

1、安装模块

这个模块内置在了nginx中,除非你安装中使用了--without-http_access_module。

2、指令

allow

语法:     allow address | CIDR | unix: | all;

默认值:     —

配置段:     http, server, location, limit_except

允许某个ip或者一个ip段访问.如果指定unix:,那将允许socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。

deny

语法:     deny address | CIDR | unix: | all;

默认值:     —

配置段:     http, server, location, limit_except

禁止某个ip或者一个ip段访问.如果指定unix:,那将禁止socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。

3. allow、deny实例

location / {

deny  192.168.1.2;

allow 192.168.1.0/24;

allow 10.1.1.0/16;

allow 2002:0db8::/32;

deny  all;

}

从上到下的顺序,类似iptables。匹配到了便跳出。如上的例子先禁止了192.16.1.2,接下来允许了3个网段,其中包含了一个ipv6,最后未匹配的IP全部禁止访问.  在实际生产环境中,我们也会使用nginx 的geo模块配合使用。

4. 结束语

nginx访问控制模块要数nginx里面最简单的指令,只要记住你想禁止谁访问就deny加上IP,想允许则加上allow ip,想禁止或者允许所有,那么allow all或者deny all即可.

 类似资料: