【Nginx】第九节 访问控制

author:咔咔nginx

wechat:fangkangfk测试

 

基于ip的访问控制代理

http_access_moduleunix

 

基于用户信任登陆code

http_auth_basic_moduleserver

 

 

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

语法: 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

配置:it

第一种是除了222.128.189.17ip不可访问,其余的任何形式均可以访问io

 

第二种是只容许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
相关文章
相关标签/搜索