【问题标题】:varnish: How to keep user cookies while caching per page not per user清漆:如何在缓存每页而不是每个用户的同时保留用户 cookie
【发布时间】:2012-07-28 15:37:19
【问题描述】:

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

【问题讨论】:

  • 第二次发帖 :P 你知道这个varnish-cache.org/trac/wiki/VCLExampleCacheCookies
  • 我读到了,我完全知道可以通过将 cookie 添加到哈希来完成,但它会导致每个用户缓存,这不是我想要完成的,因为没有通过这种方法获得收益——实际上有一点收益,但并不明显。
  • 请粘贴您的vcl 内容

标签: varnish varnish-vcl


【解决方案1】:

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

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

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

只要注意用 setcookie 缓存页面就可以了。

【讨论】:

    猜你喜欢
    • 2021-08-05
    • 2014-07-12
    • 1970-01-01
    • 2011-07-02
    • 2012-03-15
    • 2017-01-09
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    相关资源
    最近更新 更多