nginx的访问控制
一、nginx基于授权的访问控制概述
- Nginx与Apache一样,可以实现基于用户权限的访问控制,当客户端想要访问相应的网站或者目录时,要求用户输入用户名和密码,才能正常访问
- 配置步骤生成用户密码认证文件 ;修改主配置文件相对应的目录,添加认证配置项;重启服务,访问测试
二、nginx基于授权的访问控制操作
- 使用htpasswd生成用户认证文件
#安装htpasswd工具
yum install httpd-tools -y
#创建用户
[root@nginx-server ~]# htpasswd -c /etc/nginx/passwd.db user1 123456
New password:
Re-type new password:
Adding password for user user1
#修改密码权限文件
[root@nginx-server ~]# chmod 400 /etc/nginx/passwd.db
#修改所有者为
[root@nginx-server ~]# chown nginx /etc/nginx/passwd.db
#查看密码文件
[root@nginx-server ~]# cat /etc/nginx/passwd.db
user1:$apr1$B1bp6OZb$8axvatyNXnPpmoA8.KQc50
- 修改主配值文件,添加相应的认证配置项
[root@nginx-server ~]# vim /etc/nginx/nginx.conf
location / {
auth_basic "login password";
auth_basic_user_file /etc/nginx/passwd.db;
}
- 重启服务
[root@nginx-server ~]# systemctl restart nginx
- 验证基于授权的访问控制
- 验证成功
三、nginx基于客户端的访问控制概述
- 基于客户端的访问控制是通过客户端的IP地址,决定是否允许对页面访问
- Nginx基于客户端的访问控制要比Apache简单
规则
deny IP/IP段:拒绝某个IP或者网段的客户端访问
allowIP/IP段:允许某个IP或者网段的客户端访问
规则从上往下执行,如匹配则停止,不再往下匹配
四、nginx基于客户端的访问控制的实际操作
-
修改主配置文件
[root@nginx-server ~]# vim /etc/nginx/nginx.conf
location / {
auth_basic “login password”;
auth_basic_user_file /etc/nginx/passwd.db;
deny all;
#allow all;
} -
重启服务
[root@nginx-server ~]# systemctl restart nginx
- 测试
- 禁止单个IP地址访问和测试
[root@nginx-server ~]# vim /etc/nginx/nginx.conf
location / {
auth_basic "login password";
auth_basic_user_file /etc/nginx/passwd.db;
deny 10.1.1.172;
#allow all;
}
[root@nginx-server ~]# systemctl restart nginx.service
##验证能不能访问成功
[root@nginx-server ~]# curl 10.1.1.172 -I
HTTP/1.1 403 Forbidden
Server: nginx/1.14.1
Date: Fri, 08 Mar 2024 08:20:25 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive