nginx auth_basic 错误:未找到用户且未提供用户/密码

nginx auth_basic 错误:未找到用户且未提供用户/密码

我已经在 nginx 中设置了 auth basic 并阻止了其他 ip,例如:

location / {
   auth_basic "Restricted Area";
   auth_basic_user_file .htpasswd;
   allow 127.0.0.1;
   deny all;
}

username/password我可以使用提供的内容登录,.htpasswd但是 nginx 中的错误日志显示如下错误:

user "memcache" was not found in "/etc/nginx/.htpasswd"
no user/password was provided for basic authentication

有什么建议可以解释为什么会发生这种情况以及如何消除它?

答案1

这可能不是完美的解决方案,但我必须将memcache新用户添加到.htpasswd文件中。现在,我没有那个错误user not found。但那no user/password was provided for basic authentication仍然发生。我到处探索,找到了Igor SysoevNginx 创建者的这篇文章:

HTTP 基本身份验证的工作原理如下:

  • 浏览器请求无需用户/密码的页面。
  • 服务器响应 401 页面,并发送领域。
  • 此时,access_log 中会出现 401 代码,error_log 中会出现消息“没有用户/密码...”。
  • 浏览器显示领域/登录名/密码提示。
  • 如果用户按下取消键,浏览器将显示收到的 401 页面。
  • 如果用户输入登录名/密码,则浏览器将使用登录名/密码重复请求。

然后,直到您退出浏览器,它会将这些登录名/密码与受保护层次结构中的所有请求一起发送。

答案2

我不需要添加用户 memcache,而只需要安装 memcached,然后它就可以为我工作了。

server {
        # Change these settings to match your machine
        listen 80;
        server_name yourdomain.com;

           satisfy any;

           allow 127.0.0.1;
           deny all;

        # Restrict Access
           auth_basic  "Restricted";
           auth_basic_user_file /var/www/.htpasswd;

        access_log /var/log/nginx/domain_access.log;
        error_log /var/log/nginx/domain_error.log;

        # deny access to .htaccess files
        location ~ /\.ht {
                deny all;
        }

}

相关内容