总是403禁止使用Nginx .htpasswd

max*_*ner 3 nginx

从看教程,例如这个好像比较容易建立htpasswd的认证。

这是我访问网站的HTTPS块:

 server {
      listen 443;
      server_name potato;
      root /var/www/html;
      ssl on; 
      ssl_certificate      /srv/ssl/cert.pem;
      ssl_certificate_key  /srv/ssl/key.pem;  

      location / {
        auth_basic "Restricted Content";
        auth_basic_user_file /usr/local/nginx/.htpasswd;
      }

  } 
Run Code Online (Sandbox Code Playgroud)

我从这里收集了以下代码片段,以创建.htpasswd文件:

 USERNAME=admin
 PASSWORD=password
 sudo printf "$USERNAME:$(openssl passwd -crypt $PASSWORD)\n" >> .htpasswd
Run Code Online (Sandbox Code Playgroud)

最初,此操作失败,并显示一个权限被拒绝的错误,我首先通过创建一个空的.htpasswd,然后通过授予了自己的权限来解决sudo chown max:max .htpasswd

当我访问该网站时,我确实看到了Auth提示,但是即使输入正确的密码也出现403错误。

我已经摆弄了一段时间,并继续通过Google搜索进行挖掘。但是,我希望您能找到任何可能的消息来源。如果有人可以向我展示一种可靠的方法来诊断Auth故障的原因,那也很好。

在我的access.log文件中,我具有以下条目:

73.170.238.232 - admin [05/Sep/2016:12:03:34 -0700] "GET /musicker/dist/ HTTP/1.1" 403 571 "-" "Mozilla/5.0 (X11; CrOS x86_64 8350.68.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
Run Code Online (Sandbox Code Playgroud)

但我看不到那里有用的信息。您可以在上看到我正在尝试访问该网站/musicker/dist/,而在Nginx中,我的代码 location /块正在捕获并添加auth_basic。

max*_*ner 6

值得庆幸的是,我在发布问题后不久就发现了这一点,但是我认为以下信息可供其他希望解决类似问题的人使用:

相关日志不在access.log,而是在中error.log

运行此.htaccess文件后,我发现该文件不在预期的位置。然后,我将其移至正确的位置并能够进行身份验证。