Welcome! Log In Create A New Profile

Advanced

Re: Allowing the etag directive within if in location

Maxim Dounin
November 26, 2022 12:38PM
Hello!

On Sun, Nov 27, 2022 at 01:01:54AM +0800, Danila Vershinin wrote:

> Hi,
>
> For our purposes, we need to be able to turn off etag under specific
> conditions, e.g.:
>
> location / {
> if ($condition) {
> etag off;
> }
> }
>
> However, this syntax is invalid because this directive doesn't include
> the NGX_HTTP_LIF_CONF flag.
>
> We added that flag. Then recompiled NGINX. So now:
>
> * the syntax is accepted by NGINX
> * at runtime it works as desired
>
> Are there any potential problems with this approach? Performance or
> otherwise?

The generic issue with the "if" directive within a location
context is that it creates a separate configuration, and therefore
works in a counter-intuitive way in many cases (including being
counter-intuitive for developers, which results in various bugs),
see IfIsEvil wiki article for the details. Due to this, no new
directives are allowed to work in the if-in-location context.

Other than that, it probably should work fine assuming it works
for you now and you are ok to maintain the patch yourself.

A more portable solution might be to use

map $condition $etag {
default $sent_http_etag;
1 "";
}

add_header ETag $etag;

to conditionally remove the ETag header.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-devel mailing list -- nginx-devel@nginx.org
To unsubscribe send an email to nginx-devel-leave@nginx.org
Subject Author Views Posted

Allowing the etag directive within if in location

Danila Vershinin 373 November 26, 2022 12:04PM

Re: Allowing the etag directive within if in location

Maxim Dounin 135 November 26, 2022 12:38PM

Re: Allowing the etag directive within if in location

Danila Vershinin 136 November 26, 2022 01:32PM

Re: Allowing the etag directive within if in location

Maxim Dounin 223 November 26, 2022 04:08PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 177
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready