【发布时间】:2020-01-26 12:48:35
【问题描述】:
我有一个 wordpress 网站。我想让一些文件只能通过用户名/密码身份验证使用。为此,我只想使用 nginx 身份验证。所以我做了以下步骤。
1) 为用户asdf创建一个带有加密密码的.htpasswd文件:sudo htpasswd -c /etc/nginx/.htpasswd asdf
然后提示我输入并重新输入密码。该文件已创建并具有以下权限:
-rw-r--r-- 1 root root 43 Jan 26 13:39 .htpasswd
2) 我通过添加以下块来更改 nginx 配置:
location /targetfolder/pdf {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
/targetfolder/pdf 是应受密码保护的文件所在的位置。
3)然后我重启nginx:sudo service nginx restart。
然后我浏览到该文件夹并提示输入凭据。输入正确的凭据后,我收到 403 禁止 nginx 错误消息。
error.log 中的错误说:
2020/01/26 13:45:21 [error] 29853#0: *3 目录索引“/var/www//targetfolder/pdf/”被禁止,客户端:xx.xxx.xxx.xxx,服务器:example.com,请求:“GET /targetfolder/pdf/HTTP/1.1”,主机:“example.com”
我做错了什么?我已经尝试过不同的解决方案,例如为.htpasswd 尝试不同的位置,在 nginx-configuration 中设置index-files 等。这可能与wordpress有关吗?会不会是对输入的密码进行加密/解密时出错了?
FWIW,nginx 以 root 用户运行。命令ps aux | grep nginx 返回。
根 29849 0.0 0.1 91836 3060 ? ss 13:44 0:00 nginx:主进程/usr/sbin/nginx -g daemon on; master_process 开启;
【问题讨论】:
标签: authentication nginx