【问题标题】:Cache-control: Is it possible to ignore query parameters when validating the cache?缓存控制:验证缓存时是否可以忽略查询参数?
【发布时间】:2013-10-01 21:11:35
【问题描述】:

是否可以设置cache-control 标头与反向代理通信,以在确定什么是唯一 uri 时忽略查询参数,或者简而言之:即使某些查询参数已更改,也要验证缓存?

有时查询参数与页面的呈现无关,至少从服务器端的角度来看是这样。例如来自 Google Adwords 的所有 utm_* 变量。这些是您页面上的 javascript 所需要的,因此您不想将它们剥离并重定向到缓存页面,但同时最好不要处理两个基本相同但具有不同 utm_* 的 uri与反向代理通信时参数是唯一的。

一个例子:

  1. http://www.example.com/search?sort=price

  2. http://www.example.com/search?sort=price&utm_campaign=shoes

有没有办法告诉反向代理使用 HTTP 1.1 规范(即某种类型的 http 标头)它可以将这两个页面视为相同?

【问题讨论】:

    标签: reverse-proxy varnish http-caching


    【解决方案1】:

    您可以在 vcl_recv 中过滤查询字符串,并且该 [1] 还有一个 Varnish 模块。

    此外,您必须记住,在这种情况下查询字符串参数顺序很重要 [2]

    另请参阅此相关问题 [3]

    [1]https://www.varnish-cache.org/vmod/querystring

    [2]http://cyberroadie.wordpress.com/2012/01/05/varnish-reordering-query-string/

    [3]Stripping out select querystring attribute/value pairs so varnish will not vary cache by them

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-23
      • 2018-07-30
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-06
      • 1970-01-01
      相关资源
      最近更新 更多