【问题标题】:How does Varnish 3.0 deal with gzip?Varnish 3.0 是如何处理 gzip 的?
【发布时间】:2012-10-07 08:40:17
【问题描述】:

Varnish 会将压缩后的 obj 保存在 Cache 中,但是当客户端不支持 gzip 时。

Varnish 如何处理它?它是否也将其他未压缩的obj保存在Cache中,或者解压缩压缩的obj?

【问题讨论】:

    标签: reverse-proxy varnish varnish-vcl


    【解决方案1】:

    Varnish 3.0 支持 Gzip,如官方教程的"Compression" 章节中所述。对后端的所有 HTTP 请求都将包含对 gzip 内容的请求,因此默认情况下所有对象都存储在 gzip 的内存中。

    如果后端不支持gzip,你可以通过在vcl_fetch中设置beresp.do_gzip来让Varnish在存储之前压缩响应。

    如果请求来自不支持 gzip 的客户端,Varnish 将在交付之前对存储的对象进行压缩。

    【讨论】:

      【解决方案2】:

      Varnish 2.x 不压缩或解压缩:如果客户端支持 Gzip,它将在缓存中保存页面的 gzip 版本。如果客户端不支持,则会在缓存中放置另一个副本用于纯内容,不进行压缩。

      所以是的:根据 Accept-Encoding 标头(应该标准化),对于每个支持的压缩算法,一个页面的多个版本将保存在缓存中。

      *更新:为清楚起见进行了编辑,以上仅适用于 Varnish 2.0 或 2.1。 Varnish 3.x 支持 gzip,如上所述。

      【讨论】:

      • Varnish 3.0 原生支持压缩,与旧版本不同。有关详细信息,请参阅@lkarsten 答案中的教程链接。
      猜你喜欢
      • 2013-11-26
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 2017-05-06
      • 2018-07-26
      • 2023-03-20
      • 1970-01-01
      • 2012-06-16
      相关资源
      最近更新 更多