Nginx访问控制模块 – Module ngx_http_access_module
01.nginx的访问控制模块用于基于ip来控制访问请求。
- 访问控制模块的配置项包括:
- allow,允许某个范围的ip访问,其格式为:
allow address | CIDR | unix: | all;
- allow的格式可以为ip地址(192.168.0.1),网段(192.168.0.0/16)或all(0.0.0.0/0)。
- allow可以配置在http,server或location配置段中。
- deny,拒绝某个范围的ip地址访问,其格式为:
deny address | CIDR | unix: | all;
- deny的格式可以为ip地址(192.168.0.1),网段(192.168.0.0/16)或all(0.0.0.0/0)。
- deny可以配置在http,server或location配置段中。
- allow,允许某个范围的ip访问,其格式为:
- 访问控制模块的优先级:
- 当一个请求入站时,nginx会获取客户端的ip地址,将ip地址自上而下的与allow和deny规则进行匹配。
- 当第一次匹配到ip地址时,即应用该条规则,后续的规则不再匹配。
02.访问控制模块的配置示例:
- vim /opt/Apps/nginx/conf/conf.d/main.conf,编辑nginx配置文件,添加如下配置:
server {
listen 80;
server_name nginx.test.com;
error_log logs/nginx_test_error.log error;
access_log logs/nginx_test_access.log main gzip flush=5m;
location / {
root html/main;
index index.html index.htm index.php;
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
deny all;
}
}
- /opt/Apps/nginx/sbin/nginx -s reload,重新加载配置文件。
- http://nginx.test.com/,访问测试网站,会报403错误,日志如下:
- 客户端ip为172.19.1.134,自上而下匹配,最终匹配到deny all的规则,因此拒绝。
文档更新时间: 2020-03-12 19:04 作者:闻骏