我正在尝试在 Windows 7 计算机上的 nginx 1.14.2 服务器上设置基本身份验证。
这是我的测试配置:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8282;
auth_basic "Restricted";
auth_basic_user_file .htpasswd;
location / {
root html;
index index.html index.htm;
}
}
}
当我访问网站时,系统会按预期显示登录框,但身份验证总是失败。错误日志中出现此错误:
2019/01/24 16:47:55 [error] 178984#159308: *1 user "test" was not found in "C:\path-to-nginx/conf/.htpasswd", client: 127.0.0.1, server: , request: "GET / HTTP/1.1", host: "localhost:8282"
路径是正确的,我通过输入无效路径auth_basic_user_file
并观察不同的错误消息来验证这一点。
这是我的.htpasswd 的内容(密码分别为abc123
和test
)
user:$apr1$xQVhJhiA$MCeALGvCxI0bXIcEfYpTR/
test:$apr1$UFI.GptK$v3aa644WePbta3a4ClR2R0
我尝试将换行符从 改为\r\n
,\n
但没有帮助。
我的配置中是否存在我遗漏的错误?或者我可以尝试哪些方法来进一步调试此问题?
我们的想法是最终使用 nginx 作为反向代理来验证不支持它的资源,但我首先尝试在最简单的配置上进行身份验证。