Nginx 'if' statement in http context?

Posted by andy on Server Fault See other posts from Server Fault or by andy
Published on 2012-11-15T15:26:50Z Indexed on 2012/11/15 17:03 UTC
Read the original article Hit count: 234

Filed under:

I want to set a variable in the http context of nginx so it applies to all my servers. However, 'if' is only supported in server & location.

How can I set a variable in the http context so it will affect all servers?

Might the lua module be able to help with this (although I'd rather have a pure nginx solution). If so, please provide an example.

I just want to set the following variable so it applies to all servers:

# only allow gzip encoding. For all other cases, use identity (uncompressed)
if ($http_accept_encoding ~* "gzip") {
    set $sanitised_accept_encoding "gzip";
}

if ($http_accept_encoding != "gzip") {
    set $sanitised_accept_encoding "";
}

© Server Fault or respective owner

Related posts about nginx