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,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
原文地址:https://blog.csdn.net/fangkang7
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。