【问题标题】:nginx directory authentication leads to 403 forbidden despite correct credentials尽管凭据正确,nginx 目录身份验证导致 403 被禁止
【发布时间】: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


    【解决方案1】:

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

    2020/01/26 14:56:13 [error] 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;
        }
    

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 2013-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      • 2019-05-12
      • 2011-04-06
      相关资源
      最近更新 更多