0

I need to disable gzip in some cases, regardless of client's Accept-* request headers.

My Nginx's conf entry has the following directives:

gzip off;

more_clear_input_headers -t 'text/html' Accept Accept-Encoding;

proxy_set_header Accept "";
proxy_set_header Accept-Encoding "";

However, the following curl:

curl '$URL' 
-H 'Pragma: no-cache' 
-H 'Accept-Encoding: gzip, deflate, sdch' 
-H 'Accept-Language: en-US,en;q=0.8,he;q=0.6' 
-H 'Upgrade-Insecure-Requests: 1' 
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36' 
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' 
-H 'Cache-Control: no-cache' 
-H 'Cookie:  "$COOKIE"'
-H 'Connection: keep-alive'  -v > /dev/null

Results with:

< HTTP/1.1 200 OK
< Cache-Control: no-cache, no-store, private
< Content-Encoding: gzip
< Content-Type: text/html;charset=utf-8
< Date: Thu, 01 Sep 2016 07:13:30 GMT
< Expires: -1
< Server: Reblaze Secure Web Gateway
< Set-Cookie: ...
< Set-Cookie: ...
< Set-Cookie: ...
< Set-Cookie: ...
< Set-Cookie: ...
< Set-Cookie: ...
< Set-Cookie: ...
< Vary: User-Agent
< Content-Length: 55455
< Connection: keep-alive

Note, the responding server is proxied by this Nginx.

Tzury Bar Yochay
  • 717
  • 11
  • 24
  • You cannot enforce the responding server not to gzip content? – Tero Kilkanen Sep 01 '16 at 09:55
  • What is "Reblaze Secure Web Gateway"? – Michael Hampton Sep 01 '16 at 10:15
  • If the upstream server is setting the `Content-Encoding` header and sending the data as `gzip`ed, then your Nginx proxy configuration won't change that. Nginx is not going to extract the compressed data in order to send it uncompressed - it will send the response as-is. You likely need to turn off gzip on the backend server in order to do what you want. – Moshe Katz Sep 01 '16 at 19:45
  • I think @MichaelHampton has it on the nose, as usual. I believe his subtle message suggests there may be a proxy between you and Nginx that's doing gzip. – Tim Sep 01 '16 at 19:59
  • 1
    @MichaelHampton This is our own Nginx fork. – Tzury Bar Yochay Sep 07 '16 at 14:53
  • Related: https://serverfault.com/questions/529621/forcing-nginx-to-send-content-length-headers-when-serving-static-files-with-gzip – Jesse Nickles Sep 07 '22 at 07:49

1 Answers1

0

Apparently, this is not an Nginx "misbehaviour" rather, a proxied device, F5 BigIP in this case, which is configured to compress responses regardless of request headers, as long as the User-Agent header matches certain patterns.

Tzury Bar Yochay
  • 717
  • 11
  • 24