nginx目录身份验证会导致403被禁止,尽管凭据正确



我有一个wordpress网站。我想使某些文件仅通过用户名/密码身份验证可用。为此,我只想使用nginx身份验证。所以我做了以下步骤。

1( 为用户创建一个带有加密密码的.htpasswd文件asdfsudo htpasswd -c /etc/nginx/.htpasswd asdf

然后,系统将提示我输入并重新输入密码。该文件已创建并具有以下权限:

-

rw-r--r-- 1 根根 43 1月 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错误消息。

错误中的错误.log说:

2020/01/26 13:45:21 [错误] 29853#0:*3 禁止"/var/www//targetfolder/pdf/"的目录索引,客户端:xx.xxx.xxx.xxx,服务器:example.com,请求:"GET/targetfolder/pdf/HTTP/1.1",主机:"example.com">

我做错了什么?我已经尝试了不同的解决方案,例如尝试不同的.htpasswd位置,在nginx配置中设置索引文件等。会不会和wordpress有关?加密/解密输入的密码时会不会出错?

FWIW,nginx正在与root用户一起运行。 命令ps aux | grep nginx返回。

根 29849 0.0 0.1 91836 3060 ? Ss 13:44 0:00 nginx: master process/usr/sbin/nginx -g daemon on;master_process;

可以回答我自己的问题。配置基本上是正确的,但是,错误中的以下行.log指示我的错误:

2020/01/26 14:56:13 [错误] 30373#0:*54 禁止"/targetfolder/pdf/"的目录索引,客户端:80.110.88.251,服务器:example.com,请求:"GET/pdf/HTTP/1.1",主机:"example.com">

这意味着默认的nginx似乎不允许目录列表(这是一件好事(。所以我只需要为我的目标文件夹设置自动索引,从而对站点/位置进行以下配置:

location /targetfolder/pdf {
autoindex on; #added
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}

最新更新