【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,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

相关文章

文章浏览阅读3.7k次,点赞2次,收藏5次。Nginx学习笔记一、N...
文章浏览阅读1.7w次,点赞14次,收藏61次。我们在使用容器的...
文章浏览阅读1.4k次。当用户在访问网站的过程中遇到404错误时...
文章浏览阅读2.7k次。docker 和 docker-compose 部署 nginx+...
文章浏览阅读1.3k次。5:再次启动nginx,可以正常启动,可以...
文章浏览阅读3.1w次,点赞105次,收藏182次。高性能:Nginx ...