访问控制
概念:
实现基于用户授权的访问控制,当客户端想要访问相应的网站或者目录时,要求用户输入用户名和密码才能正常访问
或者使用允许的IP地址才能正常
基于用户的访问控制
#基于用户的访问控制
#其实就是访问相应网站时只有拥有对应的账号密码才能进入网站,不再是开放性网站,注意用户访问控制不是网站注册登录
#编辑配置文件,为对应server虚拟主机增加一个location模块写入访问控制信息,从而实行访问控制
vim /usr/local/nginx/conf/nginx.conf
location / { #这就是一个标准的location,就是默认的location增加了认证模块
root html;
index index.html;
auth_basic_user_file /usr/local/nginx/.auth_passwd';
#auth认证 basic必须的 user用户 file文件 必要的认证密码文件存放路径
auth_basic "welcome advent";
#认证欢迎词,advent到来
}
nginx -s reload #重载配置文件
yun -y install httpd-tools #安装httpd-tools程序用此程序生成账号密码
[root@localhost html]# htpasswd -c /usr/local/nginx/.auth_passwd text_user
#在上述位置文件创建用户密码,密码文件可改名
New password: #密码不可见,输入两次
Re-type new password:
Adding password for user text_user
#此时账号密码就被写入/.auth_passwd 可以查看下,密码是哈希
#此位置需注意,配置文件所写的密码文件和创建用户名密码的所使用的路径文件名要对上,另外,如果出现密码或者用户名错误也只是反馈403,不会提示密码错误,如果不行就重载配置文件
#停止nginx
killall -9 nginx
#启动nginx
nginx
#访问测试
firefox 192.168.5.8
基于IP地址的访问控制
#基于IP地址的访问控制
#设置允许哪些主机访问,拒绝哪些主机访问
vim /usr/local/nginx/conf/nginx.conf #编辑配置文件,需要对哪个location配置就写在哪里
location / {
root html;
index index.html;
allow 192.168.5.7; #允许谁来访问,可以写IP地址和all
deny all; #拒绝谁来访问,可以写IP地址和all
} #注意允许和拒绝是是有先后顺序的,先上先执行
#使用两台不同IP地址验证
firefox www.shitian.com
firefox www.shitian.com
#注意:有时有缓存需刷新页面或者重启