Nginx-模块-ngx_http_access_module【访问控制】
1、基础
1.1、作用
ngx_http_access_module模块允许限制对某些客户端地址的访问。
1.2、指令介绍
1.2.1、allow
# 允许访问 Syntax: allow address | CIDR | unix: | all; Default: — Context: http, server, location, limit_except
1.2.2、deny
# 禁止访问 Syntax: deny address | CIDR | unix: | all; Default: — Context: http, server, location, limit_except
2、实战
2.1、只允许指定的来源IР能访问/centos,其它网段全部拒绝
2.1.1、配置nginx
cat >/etc/nginx/conf.d/mirror.cyc.com.conf <<'EOF' server{ listen 80; server_name mirror.cyc.com; charset utf-8; root /mnt/; location /cdrom { autoindex on; autoindex_exact_size off; autoindex_localtime on; allow 192.168.10.0/24; deny all; } location / { index index.html; } } EOF
2.1.2、重新加载nginx
systemctl reload nginx
2.1.3、测试访问
nginx-server ~]# curl http://127.0.0.1/cdrom/ -I HTTP/1.1 403 Forbidden # 这个被拒绝掉 ... nginx-server ~]# curl http://192.168.10.101/cdrom/ -I HTTP/1.1 200 OK ...
3、deny和allow匹配顺序
默认情况下,从第一条规则进行匹配如果匹配成功,则不继续匹配下面的内容。
如果匹配不成功,则继续往下寻找能匹配成功的内容。