gzip_disable doesn't disable gzip_vary

Maxim Dounin mdounin at mdounin.ru
Fri Mar 2 09:59:37 UTC 2012


Hello!

On Fri, Mar 02, 2012 at 02:08:05PM +0700, Edho Arief wrote:

> I noticed that with this setting:
> 
> gzip on;
> gzip_vary on;
> gzip_disable "msie6";
> 
> Header "Vary: Accept-Encoding" will always be returned even though the
> user agent is ie6 (and therefore not using gzip):
> 
> # curl -I http://animebsd.net/about/feed -A "Mozilla/4.0 (compatible;
> MSIE 6.0; Windows NT 5.0)"
> HTTP/1.1 200 OK
> Server: nginx/1.1.14
> Date: Fri, 02 Mar 2012 07:04:25 GMT
> Content-Type: text/xml; charset=UTF-8
> Connection: keep-alive
> Vary: Accept-Encoding
> X-Pingback: http://animebsd.net/xmlrpc.php
> Last-Modified: Fri, 02 Mar 2012 04:17:00 GMT
> ETag: "92a5989a0949b85e303228490256ebf2"
> X-Powered-By: W3 Total Cache/0.9.2.4
> Link: <http://wp.me/Pig2n-5B>; rel=shortlink
> 
> I don't think this is intentional as getting non-gzipped content
> doesn't return such header. (I've verified this is returned by nginx
> by running same test with disabled gzip_vary)

This is intentional, "Vary" is returned whenever gzip (and 
gzip_vary) is enabled, as response representation depends on 
header(s) listed.

Strictly speaking, it should also include User-Agent in case of 
gzip_disable defined.

Maxim Dounin



More information about the nginx mailing list