清漆:如何在每页缓存而不是每个用户的情况下保留用户cookie

时间:2012-07-28 15:37:20

标签: varnish varnish-vcl

我有一个页面,其内容将显示给所有用户,但问题是我在页面加载后完成了ajax调用此调用不可缓存但它需要从缓存页面中删除的cookie,我可以做些什么来保留cookie并仍然获得缓存页面?

1 个答案:

答案 0 :(得分:1)

在vcl_hash例程中,您可以确切地确定如何散列请求。例如,以下内容仅对请求URI进行哈希处理,不包括cookie:

sub vcl_hash {
    set req.hash += req.url;
    set req.hash += req.http.host;
} 

请注意,您可能希望排除ajax调用以及配置中无法缓存的任何其他请求。或者更好的是,如果请求是可缓存的,请让后端发送标头,并让varnish对此进行操作。

请注意使用setcookie缓存页面,它应该没问题。