服务器如何设置访问IP的过滤规则呢,以下文章或许会帮到大家,nginx访问限制可以基于两个方面,一个是基于ip的访问控制,另一个是基于用户的信任登陆控制,本文就详细的介绍了这两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
一、服务器全局限IP
#vi nginx.conf
allow 10.115.0.116; #允许的IP
deny all;
二、站点限IP
#vi vhosts.conf
站点全局限IP:
location / {
index index.html index.htm index.php;
allow 10.115.0.116;
deny all;
站点目录限制
location ^~ /test/ {
allow 10.115.0.116;
deny all;
注意事项:
1. deny 一定要加一个ip,否则直接跳转到403,不往下执行了;如果403默认页是同一域名下,会造成死循环访问;
2. allow的ip段
从允许访问的段位从小到大排列,如127.0.0.0/24 下面才能是10.10.0.0/16
24表示子网掩码:255.255.255.0
16表示子网掩码:255.255.0.0
8表示子网掩码:255.0.0.0
3. deny all;结尾 表示除了上面allow的其他都禁止
如:
deny 192.168.1.1;
allow 127.0.0.0/24;
allo w 192.168.0.0/16;
allow 10.10.0.0/16;
deny all;
nginx访问限制可以基于两个方面,一个是基于ip的访问控制,另一个是基于用户的信任登陆控制
下面我们将对这两种方法逐个介绍
基于IP的访问控制介绍:
可以通过配置基于ip的访问控制,达到让某些ip能够访问,限制哪些ip不能访问的效果
这是允许 访问的配置方法
配置语法:allow address | CIDR | unix | all;
默认配置:没有配置
配置路径:http、server、location、limit_except下;
这是不允许访问的配置
方法配置语法:deny address | CIDR | unix | all;
默认配置:没有配置
配置路径:http、server、location、limit_except下;
基于IP访问限制的测试
1. 查看本机ip地址,如果是公网,则到 ip138网查看,如果是试验,使用cmd查看。
2. 在 /opt/app/code/目录下添加一个 admin.html 文件,里面就是一个带着背景颜色的普通admin页面
3. 在 /etc/nginx/conf.d/目录下,修改default.conf文件,添加如下内容
由上图可知,添加了一个location,来匹配 admin.html,在里面设置了基于ip限制的配置, 将 192.xx.xx.xx 限制,不让其访问,其他的都可以访问。
4. 重新加载nginx
5. 浏览器输入网址,查看日志
6. 从上图看之,已经实现了 限制某个ip的访问,如果只允许某个ip访问,只需要改下关键字即可。
示例:
一、服务器全局限IP
1 2 3 | #vi nginx.conf allow 10.115.0.116; #允许的IP deny all; |
二、站点限IP
1 2 3 4 5 6 | #vi vhosts.conf 站点全局限IP: location / { index index.html index.htm index.php; allow 10.115.0.116; deny all; |
站点目录限制
1 2 3 | location ^~ /test/ { allow 10.115.0.116; deny all; |
基于登陆用户信任的访问控制
举个例子,我们在访问apache信息时弹出一个用户密码框提示,来进行一个访问前验证。
配置语法:auth_basic string | off;
默认配置:auth_basic off;
配置路径:http、server、location、limit_except;
匹配配置语法: auth_basic_user_file filePath;
匹配默认配置: 没有配置
匹配配置路径: http、server、location、limit_except;
1. 需要添加一个身份文件,auth_conf 文件,这里使用一个 htpasswd工具
使用一下命令 htpasswd -c ./auth_conf root;
解释一下: htpasswd 命令 -c:默认是使用md5加密, ./auth_conf 是指定路径和文件 , root是用户名
输入之后,会输入两次密码
2. 修改 default.conf配置文件,修改内容如下
3. 重新加载nginx
4. 输入网址,查看结果,可以看出 要输入身份信息才能访问