nginx的allow和deny配置

转自:http://www.ttlsa.com/linux/nginx-modules-ngx_http_access_module/html

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

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

一、安装模块

这个模块内置在了nginx中,除非你安装中使用了--without-http_access_module。若是你还没安装过nginx,那么请参考下ttlsa以前写的nginx安装.apache

二、指令

allow
语法:     allow address | CIDR | unix: | all;
默认值:     —
配置段:     http, server, location, limit_except运维

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

deny
语法:     deny address | CIDR | unix: | all;
默认值:     —
配置段:     http, server, location, limit_exceptspa

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

3. allow、deny实例

location / {
deny  192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny  all;
}unix

从上到下的顺序,相似iptables。匹配到了便跳出。如上的例子先禁止了192.16.1.1,接下来容许了3个网段,其中包含了一个ipv6,最后未匹配的IP所有禁止访问.  在实际生产环境中,咱们也会使用nginx 的geo模块配合使用,有兴趣的请参考ttlsa相关文章nginx geo使用方法.code

4. 结束语

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

站点:运维生存时间   网址:http://www.ttlsa.com/html/3585.html

相关文章
相关标签/搜索