Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Varnish 4基本身份验证不断提示输入用户名和密码_Varnish_Varnish Vcl_Varnish 4 - Fatal编程技术网

Varnish 4基本身份验证不断提示输入用户名和密码

Varnish 4基本身份验证不断提示输入用户名和密码,varnish,varnish-vcl,varnish-4,Varnish,Varnish Vcl,Varnish 4,我在测试环境中使用Varnish 4,希望使用基本身份验证来保护对内容的访问 我希望发生的是,第一个请求会提示输入基本身份验证,然后在用户输入用户名和密码后,它不再询问。我用Varnish设置了一个规则来检查正确的身份验证,如果用户没有,我会要求用户提供它 我的最终用户抱怨说,他们在浏览器中反复被要求提供基本的身份验证详细信息,有时在显示第一页之前必须输入20次 当使用Chrome浏览器时,除非我打开了“开发工具”面板并勾选了“打开开发工具时不缓存请求”面板,否则这种情况似乎不会发生。在各种版本

我在测试环境中使用Varnish 4,希望使用基本身份验证来保护对内容的访问

我希望发生的是,第一个请求会提示输入基本身份验证,然后在用户输入用户名和密码后,它不再询问。我用Varnish设置了一个规则来检查正确的身份验证,如果用户没有,我会要求用户提供它

我的最终用户抱怨说,他们在浏览器中反复被要求提供基本的身份验证详细信息,有时在显示第一页之前必须输入20次

当使用Chrome浏览器时,除非我打开了“开发工具”面板并勾选了“打开开发工具时不缓存请求”面板,否则这种情况似乎不会发生。在各种版本的IE中,这种情况经常发生

在我的VCL中,基本身份验证规则在子VCL_recv部分中如下所示:

if (!req.http.Authorization ~ "Basic xxxxxxxxxxxxxxxxxx=="
    # Don't require auth if IP on the authpass list.
    && !client.ip ~ authpass
    # Don't require auth if this is the live website.
    && !req.http.Host == "www.mylivesite.com") {
    return(synth(401, "Authentication required"));
}
unset req.http.Authorization;

我认为您在vcl_synth中遗漏了这一点:

sub vcl_synth {
   if (resp.status == 401) {
   set resp.status = 401;
   set resp.http.WWW-Authenticate = "Basic";
   return(deliver);
}
检查有关在Varnish中设置基本身份验证的回答