如何选择性地剥离/允许使用Varnish的cookie?

时间:2013-06-24 10:59:23

标签: http cookies varnish

我有Varnish设置剥离所有cookie:

sub vcl_fetch {
    unset beresp.http.Set-Cookie;
    #etc
}

但是,我想设置一个名为first_visit的cookie,我不希望Varnish剥离。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以查看Header vmod,它允许使用Set-Cookie进行操作

答案 1 :(得分:1)

您还可以在普通VCL中删除Cookie:

sub vcl_fetch {
  # ...
  if ( beresp.http.Set-Cookie 
    && beresp.http.Set-Cookie == "first_visit=Y; path=/; domain=mydomain.tld" 
  ) {
    set beresp.http.first-visit = beresp.http.Set-Cookie;
    unset beresp.http.Set-Cookie;
  }
  # ...
}

sub vcl_deliver {
  # ...
  if (resp.http.first-visit) {
    set resp.http.Set-Cookie = resp.http.first-visit;
    unset resp.http.first-visit;
  }
  # ...
}