Nginx之Basic Auth认证
一 前言
Basic Auth(基本认证)是一种简单的HTTP身份验证机制,用于验证用户身份。它通过用户名和密码进行认证,具体步骤如下:
- 客户端请求:客户端向服务器请求受保护的资源。
- 服务器响应:服务器返回401 Unauthorized状态码,并在WWW-Authenticate头中指定使用Basic Auth。
- 客户端认证:客户端将用户名和密码用冒号连接,进行Base64编码,并在Authorization头中发送。
- 服务器验证:服务器解码并验证凭据,若有效则返回请求的资源,否则再次返回401。
二 htpasswd介绍
htpasswd是开源的http服务器Apache Http Server的一个命令行工具.可以用来创建和更新基本认证
的用户认证密码文件.其中htpasswd必须对密码文件有读写权限
linux安装
## 安装插件
yum install -y httpd-tools
## 生成密码
htpasswd -bc /usr/local/soft/nginx/conf.d/httpwd abc 123465
# 参数如下:
-b -->密码直接写在命令行中,而非使用提示输入的方式
-c—>创建密码文件,如果文件存在,则覆盖
-n—>不更新密码文件,将用户名密码进行标注输出
-m—>使用md5算法对密码处理
-d—>使用crypt算法对面处理
-s—>使用sha算法对密码处理
-p—>不对密码加密处理,使用明文
-D—>从密码文件中删除指定用户记录
也可以使用在线htpasswd生成器
https://www.bejson.com/encrypt/htpasswd/
三 实现步骤
(1) 新增配置
server {
listen 8588;
# 静态资源路径
location /static_auth/ {
auth_basic "nginx basic auth";
auth_basic_user_file D:/DevSoft/nginx-1.17.0/auth/httpwd;
alias D:/JavaEE/Project/booking/logs/;
autoindex on; # 启用目录列表
}
}
(2) httpwd文件
a:$apr1$BiltpYiz$DyQuzT5BFrHfr0UVpAPsq1
配置修改完成后,重新加载nginx配置
(3) 测试
访问 http://localhost:8588/static_auth/ ,则提示输入用户名密码,输入验证