Varnish将在Cache中保存压缩的obj,但是当客户端不支持gzip时。
Varnish如何处理它?它是否也在Cache中保存另一个未压缩的obj,或者解压缩压缩的obj?
答案 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,如上所述。