【Nginx】第九节 访问控制

举报
原来是咔咔 发表于 2022/03/27 00:40:30 2022/03/27
【摘要】 author:咔咔 wechat:fangkangfk 基于ip的访问控制 http_access_module 基于用户信任登录 http_auth_basic_module 下来我们解释第一个基于IP的访问控制 语法:  // 允许的访问 ip Syntac:allow address |...

author:咔咔

wechat:fangkangfk

基于ip的访问控制

http_access_module

基于用户信任登录

http_auth_basic_module

下来我们解释第一个基于IP的访问控制

语法: 


  
  1. // 允许的访问 ip
  2. Syntac:allow address | CIDR | unix: | all
  3. Default:
  4. Context: http,server,location,limit_except
  5. // 不允许访问
  6. Syntac:deny address | CIDR | unix: | all
  7. Default:
  8. 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这个用法也简单的说一下


  
  1. // 修改一个用户密码
  2. htpasswd -d password.user kaka
  3. // 添加一个用户直接用户密码写完
  4. htpasswd -b .passwd Jack 123456
  5. // 删除一个用户
  6. htpasswd -D password.user kaka

文章来源: blog.csdn.net,作者:咔咔-,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/fangkang7/article/details/84866178

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。