varnish:如何在缓存每页而不是每个用户的同时保留用户cookie



我有一个页面,其中的内容将显示给所有用户,但问题是我在页面加载后进行了ajax调用。该调用不可缓存,但它需要从缓存页面中删除的cookie,我该怎么办才能保留cookie并仍然获得缓存页面?

在vcl_hash例程中,您可以决定如何对请求进行哈希。例如,以下内容只对请求URI进行散列,而不包括cookie:

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

请注意,您可能希望排除ajax调用和配置中不可缓存的任何其他请求。或者更好的是,如果请求是可缓存的,则让后端发送一个标头,并让varnish对此进行处理。

只要小心使用setcookie缓存页面,它应该是可以的。

最新更新