无法通过Varnish 4缓存登录

时间:2016-10-20 02:21:22

标签: varnish varnish-vcl

我需要一些帮助。我怎么能在新版本中这样做?因为vcl_fetch是旧的,现在它没有在Varnish 4中加入。

sub vcl_fetch{
if (beresp.http.set-cookie ~ "sessionid" || beresp.http.set-cookie ~ "csrftoken") {
           return (pass);
         } else {
               return (deliver);
         }
}

1 个答案:

答案 0 :(得分:1)

Vcl_fetch已移至vcl_backend_response。

那说从vcl_backend_response返回传递并不是一个好主意。 您应该将return (pass)重写为

set beresp.uncacheable = true;
set beresp.ttl = 120s;
return (deliver);

您的整个vcl_backend_response应如下所示

sub vcl_fetch{
if (beresp.http.set-cookie ~ "sessionid" || beresp.http.set-cookie ~ "csrftoken") {
  set beresp.uncacheable = true;
  set beresp.ttl = 120s;
  return (deliver);
     } else {
           set beresp.ttl = 10s;
           set beresp.grace = 1h;
     }

}