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-le...@nginx.org