- Nginx访问控制
- 一、基于IP的访问控制
- 准备工作
- 案例一:
- 案例二:
- 案例三:
- 案例四:
- 案例五:
- 案例六:
- 总结
- 二、基于用户的信任登录
- 案例
nginx基于IP的访问控制模块:http_access_module
配置语法如下:
Syntax: allow address | CIDR | unix: | all;
default:默认无
Context:http,server,location,limit_except
Syntax: deny address | CIDR | unix: | all;
default:默认无
Context:http,server,location,limit_except
环境:
准备工作三台虚拟机:
虚拟机1:nginx服务端。完成访问控制配置。
虚拟机2、虚拟机3:客户端。对访问控制进行验证
服务端:
安装并启动nginx,创建网站发布目录和网页测试内容
编写子配置文件
[root@localhost conf.d]# vim /etc/nginx/conf.d/web.conf
重新加载配置文件
[root@localhost conf.d]# nginx -s reload
客户端:
在不做访问控制的时候,两台客户端都能访问服务端
服务端:
设置访问控制:先拒绝192.168.58.162客户端,再允许其他任何客户端。
客户端:
服务端:
在案例一的基础上将allow all注释掉
客户端:
与案例一验证结果相同,说明在使用deny拒绝某些ip后,允许其他所有客户端访问的情况下,无论写还是不写allow all,效果都一样,即这种情况下allow all是默认的。
服务端:
客户端:
deny all:都不允许访问
服务端:
客户端:
两个客户端都能访问到,说明在先允许所有,在拒绝某个的情况下,拒绝失效
服务端:
客户端:
服务端:
客户端:
两个客户端都能访问到,说明在先允许所有,在拒绝某个的情况下,拒绝失效
1.拒绝所有,允许某一个,允许不生效
2.允许所有,拒绝某一个,拒绝不生效
使用情况
先写被拒绝的人,ip 或者 网段 被添加到了黑名单,剩下的都允许 在白名单内
二、基于用户的信任登录1、nginx基于用户的信任登录模块:http_auth_basic_module
2、配置语法
Syntax: auth_basic string | off;
Default: auth_basic off;
Context:http,server,location,limit_except
Syntax: auth_basic_user_file file;
default:默认无
Context:http,server,location,limit_except
file:存储用户名密码信息的文件。
准备工作:
用户的信任登录配置:
1、修改配置文件
[root@localhost conf.d]# vim /etc/nginx/conf.d/auth.conf
auth_basic不为off,开启登录验证功能,auth_basic_user_file加载账号密码文件。
2、安装httpd-tools工具
htpasswd 是开源 http 服务器 apache httpd 的一个命令工具,用于生成 http 基本认证的密码文件
[root@localhost conf.d]# yum -y install httpd-tools
3、添加信任用户
[root@localhost conf.d]# htpasswd -cm /etc/nginx/auth_conf zy
4、验证
局限性
(1)用户信息依赖文件方式
(2)操作管理机械,效率低下
解决方法
(1)Nginx结合LUA实现高效验证
(2)Nginx和LDAP打通,利用nginx-auth-ldap模块
(3)Nginx只做中间代理,具体认证交给应用。



