nginx密码认证场景
1.一些非公开的页面,只想给特定的用户访问,但是又不想写权限控制
2.临时需要请求线上的调试接口,但是这些接口不能直接暴露
nginx启用密码认证(下面是基于centos7)
1.安装一个生成账号密码的小工具
yum install httpd-tools
2.生成一个账号密码
htpasswd -bc 生成账号密码文件路径 账号名 密码
(例子:)htpasswd -bc /tmp/t.db root 123456
3.在nginx配置启用密码认证
location / {
root /usr/share/nginx/html;
index index.html index.htm;
auth_basic "input password"; # 这里是提示信息
auth_basic_user_file /tmp/t.db; # 这里填写刚才生成的文件路径
}
4.重新加载配置文件
nginx -s reload
效果图
如何退出验证呢
通过分析,登录凭证并不是放在cookie而是在header(字段是Authorization)。所以重新打开浏览器的时候就需要重新登录了。