Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个页面,其内容将显示给所有用户,但问题是我在页面加载后完成了一个 ajax 调用,此调用不可缓存,但它需要从缓存页面中删除的 cookie,我该怎么办保留 cookie 并仍然获取缓存页面?
在 vcl_hash 例程中,您可以准确决定如何散列您的请求。例如,以下内容只会对请求 URI 进行哈希处理,而不包括 cookie:
sub vcl_hash { set req.hash += req.url; set req.hash += req.http.host; }
请注意,您可能希望排除 ajax 调用和任何其他在您的配置中不可缓存的请求。或者更好的是,如果请求是可缓存的,则让后端发送一个标头,然后让 varnish 对其进行处理。
请注意使用 setcookie 缓存页面,它应该没问题。