2

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

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

4

2 回答 2

8

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

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

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

于 2012-10-18T19:43:27.533 回答
-1

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

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

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

于 2012-10-17T08:35:55.363 回答