gzip enabling for selective browsers

Igor Sysoev is at rambler-co.ru
Wed Sep 5 19:18:34 MSD 2007


On Wed, Sep 05, 2007 at 10:57:57PM +0800, Steve Chu wrote:

> we have added a new variable, "http_accept_encoding".
> Just patch the ngx_http_variables.c source file in ngx_http_core_variables[]:
> 
> { ngx_string("http_accept_encoding"), NULL, ngx_http_variable_header,
>       offsetof(ngx_http_request_t, headers_in.accept_encoding), 0, 0 },

There is no need to add this variable because it already exists:
any client header is available as $http_... Some frequently used variables
such as $http_host, $http_user_agent, etc. are defined explicitly in
ngx_http_variables.c to speed up search.

> So, you can using in configure file:
> 
> if ($http_accept_encoding ~* "gzip") {
>        ...
>    }

ngx_http_gzip_module always tests "Accept-Encoding" for gzip, so
this test is not needed.

> On 9/5/07, Igor Sysoev <is at rambler-co.ru> wrote:
> > On Tue, Sep 04, 2007 at 06:53:32PM +0200, Roxis wrote:
> >
> > > On Tuesday 04 September 2007, Ezra Zygmuntowicz wrote:
> > > >     So nginx cannot selectively gzip based on browser, can it turn off
> > > > gzip inside a location /foo {} block?
> > >
> > > location / {
> > >     if ($http_user_agent ~ MSIE) {
> > >         gzip off;
> > >     }
> > > }
> >
> > It may be set so, but as any configuration inside "if" has drawbacks.
> >
> >
> > --
> > Igor Sysoev
> > http://sysoev.ru/en/
> >
> >
> 
> 
> -- 
> Steve Chu
> http://stvchu.org
> 

-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list