2012-07-28 53 views
0

我有一个页面有一个内容,将显示给所有用户,但问题是我有一个Ajax调用完成后,页面加载此调用不是可缓存,但它需要从缓存页面中删除的cookie,我该怎么做以保留cookie并仍然获得缓存页面?varnish:如何保持用户cookie,而不是每个用户缓存每页

+0

第二次发布:P您是否知道这个https://www.varnish-cache.org/trac/wiki/VCLExampleCacheCookies – Tamil 2012-07-28 15:39:41

+0

我读过,我完全知道它可以通过添加cookies来哈希,但它会导致每个用户缓存,这不是我想要完成的,因为没有通过这种方法获得收益 - 实际上有一点收获,但不明显。 – 2012-07-28 15:44:24

+0

请粘贴你的'vcl'内容 – 2012-08-26 13:22:03

回答

1

在vcl_hash例程中,您可以决定如何散列请求。例如,下面将只哈希请求URI不包括饼干:

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

请注意,你可能要排除的Ajax调用和不在你的配置缓存的任何其他请求。或者更好的是,如果请求是可缓存的,让后端发送一个头文件,并让varnish对此进行处理。

只要提防用setcookie缓存页面,它应该没问题。

相关问题