我有一个页面,其中的内容将显示给所有用户,但问题是我在页面加载后进行了ajax调用。该调用不可缓存,但它需要从缓存页面中删除的cookie,我该怎么办才能保留cookie并仍然获得缓存页面?
在vcl_hash例程中,您可以决定如何对请求进行哈希。例如,以下内容只对请求URI进行散列,而不包括cookie:
sub vcl_hash {
set req.hash += req.url;
set req.hash += req.http.host;
}
请注意,您可能希望排除ajax调用和配置中不可缓存的任何其他请求。或者更好的是,如果请求是可缓存的,则让后端发送一个标头,并让varnish对此进行处理。
只要小心使用setcookie缓存页面,它应该是可以的。