在haproxy中提供缓存之前,将请求验证传递给后端服务器

时间:2015-05-21 07:16:43

标签: authentication caching varnish haproxy

目前我们正在使用HAProxy进行负载平衡,但我们正在考虑将它与Varnish一起用于API数据缓存。据我调查,我发现我们可以使用HTTPBasicAuthentication验证缓存请求

if (! req.http.Authorization ~ "Basic Zm9vOmJhcgo=")
{
  error 401 "Restricted";
}

但我的身份验证是动态的,我需要检查我的数据库是否有效。所以这件事对我不起作用。我在寻找的是什么 enter image description here

在我的Validate The Request中我想将请求传递给后端服务器,如果它返回200,我想继续检查缓存中的数据,否则返回Unauthorised access。让我知道实现这个的方法

1 个答案:

答案 0 :(得分:1)

您可以在Varnish中授权请求。有足够的VMOD可以轻松实现:cURL,Digest,Redis / Memcache / ...等(参见https://www.varnish-cache.org/vmods)。这种方法是Varnish Paywall或最近推出的Varnish API Engine等产品背后的基本理念。