【发布时间】:2013-06-20 20:43:17
【问题描述】:
我设置了 Varnish 来删除所有 cookie:
sub vcl_fetch {
unset beresp.http.Set-Cookie;
#etc
}
但是,我想设置一个名为 first_visit 的 cookie,我不希望 Varnish 将其剥离。
我该怎么做?
【问题讨论】:
我设置了 Varnish 来删除所有 cookie:
sub vcl_fetch {
unset beresp.http.Set-Cookie;
#etc
}
但是,我想设置一个名为 first_visit 的 cookie,我不希望 Varnish 将其剥离。
我该怎么做?
【问题讨论】:
您也可以在纯 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;
}
# ...
}
【讨论】:
set resp.http.Set-Cookie = "first_visit=Y; path=/; domain=mydomain.tld";
您可以查看Header vmod,它允许使用 Set-Cookie 进行操作
【讨论】: