HTTP验证所有清漆请求

时间:2013-11-05 21:17:47

标签: http basic-authentication varnish varnish-vcl

我们正在尝试使用Varnish来缓存来自第三方服务的结果,这是我们定期点击的。不幸的是,当他们的服务失败时,我们的网站几乎变得无法使用。

我遇到的问题是我们连接的服务需要http身份验证才能访问我们遇到的任何网址。我希望能够在default.vcl文件中默认设置用户名和密码,以便在每个请求中自动包含身份验证。

2 个答案:

答案 0 :(得分:3)

因此,为了解决这个问题,我修改了HTTP标题,如下所示:

sub vcl_recv {
  set req.http.Authorization = "Basic d2h5ZGlkeW91OmRlY29kZXRoaXM=";
}

编码部分是您要使用的用户名和密码的base64:

echo -n "username:password" | base64

答案 1 :(得分:0)

您可以在vcl_miss和vcl_pass中设置后端请求的属性。

对于HTTP Basic身份验证,您可以执行以下操作:

sub vcl_miss {
    if (req.backend == "backend2") {
        set bereq.http.Authorization = "Basic <base64string>";
    }
}

不支持对后端请求的HTTP摘要身份验证。