Varnish 3.0如何处理gzip?

时间:2012-10-17 06:28:48

标签: reverse-proxy varnish varnish-vcl

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

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

2 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分:-1)

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

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

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