Nginx配置Basic Auth认证实现
### 关于Basic Authorization
在HTTP中,Basic Authorization基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。
在发送之前是以用户名追加一个冒号然后串接上口令,并将得出的结果字符串再用Base64算法编码。例如,提供的用户名是Aladdin、口令是open sesame,则拼接后的结果就是Aladdin:open sesame,然后再将其用Base64编码,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==。最终将Base64编码的字符串发送出去,由接收者解码得到一个由冒号分隔的用户名和口令的字符串。
虽然对用户名和口令的Base64算法编码结果很难用肉眼识别解码,但它仍可以极为轻松地被计算机所解码,就像其容易编码一样。编码这一步骤的目的并不是安全与隐私,而是为将用户名和口令中的不兼容的字符转换为均与HTTP协议兼容的字符集。
首先我们需要用来存储用户名和密码的文件,通过htpasswd
命令来生成,这是apache提供的一个工具,如果你没有装可以用在线生产的方式来生成。
在线生成网址:tool.lu、oschina
htpasswd -c -d /etc/nginx/pass_file username
//输入以上命令,回车输入密码,再次回车,输入确认密码
然后修改nginx 的配置文件,加入如下代码即可。
location ~ /admin {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/pass_file;
//存储用户名和密码的文件。
root /home/www/admin;
//host 地址,不然认证通过之后,找不到对应的文件
}
重载nginx配置文件,访问你设置的网址及路径,如果弹出授权框即为成功。