Nginx访问控制
nginx 访问控制模块
基于IP的访问控制:http_access_module
1、配置语法
Syntax:allow address | CIDR | unix: | all;
default:默认无
Context:http,server,location
Syntax:deny address | CIDR | unix: | all;
default:默认无
Context:http,server,location
===================================================
allow 允许 //ip或者网段
deny 拒绝 //ip或者网段
2、配置测试
编辑/etc/nginx/conf.d/access_mod.conf
内容如下:
[root@192 ~]# vim /etc/nginx/conf.d/access_mod.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.hml;
deny 192.168.1.8;
allow all;
}
}
[root@192 ~]# nginx -t
[root@192 ~]# nginx -s reload
#需要注意:
1.按顺序匹配,已经被匹配的ip或者网段,后面不再被匹配。
2.如果先允许所有ip访问,在定义拒绝访问。那么拒绝访问不生效。
deny 1.11.1.1
allow all;
3.默认为allow all
宿主机IP为192.168.1.8
,虚拟机IP为192.168.1.11
,故这里禁止宿主机访问,允许其他所有IP访问。
宿主机访问http://192.168.1.11
,显示403 Forbidden
。
当然也可以反向配置,同时也可以使用IP网段的配置方式,如allow 192.168.1.0/24;
,表示满足此网段的IP都可以访问。
3、指定location
拒绝所有请求
如果你想拒绝某个指定URL地址的所有请求,只需要在location
块中配置deny
all指令:
[root@192 ~]# vim /etc/nginx/conf.d/access_mod.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.hml;
deny all; #拒绝所有
}
}
[root@192 ~]# nginx -t
[root@192 ~]# nginx -s reload