【Nginx】第九节 访问控制
author:咔咔
wechat:fangkangfk
基于ip的访问控制
http_access_module
基于用户信任登录
http_auth_basic_module
下来我们解释第一个基于IP的访问控制
语法:
-
// 允许的访问 ip
-
-
Syntac:allow address | CIDR | unix: | all
-
-
Default:
-
-
Context: http,server,location,limit_except
-
-
-
// 不允许访问
-
-
Syntac:deny address | CIDR | unix: | all
-
-
Default:
-
-
Context: http,server,location,limit_except
配置:
第一种是除了222.128.189.17ip不可访问,其他的任何形式都可以访问
第二种是只允许222.128.189.17ip访问,其他的都不允许访问
以上的访问都是基于http_access_module访问的
下来我们说一下这种方式的局限性
http_access_mosule这种基于ip控制访问的是需要客户端直接请求服务端才可以生效的,但是我们使用nginx最长用的功能就是反向代理,从下图就可以看出来,只要经过反向代理我们的服务端是获取不到客户端的ip的。
这个时候就有个好东西出现了,那就是x_forwarded_for,这个协议是可以将客户的ip跟反向代理的ip一起发送给我们的服务端,就解决了这个问题
解决方案:
方法一:采用别的HTTP头信息控制访问,如HTTP_X_FORWARD_FOR,但这是一种协议,并不是全部都支持
方法二:结合geo模块来实现(这个需要在后边单独讲解)
方法三:通过http自定义变量传递
实现方式二:基于用户信任登录
http_auth_basic_module
我们需要先安装这个库
yum -y install httpd
创建一个用户kaka的用户
修改nginx.conf配置文件
测试
对于http_auth_basic_module局限性,这里简单的提一下俩个方案
这个在后边的都会写到的,先知道有这个就可以了,掌握http_auth_basic_module这个控制模块
对于这个htpasswd这个用法也简单的说一下
-
// 修改一个用户密码
-
htpasswd -d password.user kaka
-
-
// 添加一个用户直接用户密码写完
-
htpasswd -b .passwd Jack 123456
-
-
// 删除一个用户
-
htpasswd -D password.user kaka
-
文章来源: blog.csdn.net,作者:咔咔-,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/fangkang7/article/details/84866178
- 点赞
- 收藏
- 关注作者
评论(0)