apologies for the simple question, but i could only find the opposite
situation in the list archives and I haven’t had to reconfigure some of
these routes in years!
I guess the docs logic is reversed: it is explicitely stated when a
directive inherits, which must be that way because not considered the
default behavior (although I am not in Igor’s head…).
This product uses a different paradigm that ‘minimal configuration
lines’,
and Igor has nothing against duplicated blocks, which allow direct
understanding of what is in effect in the location block you are looking
at, compared to horizontal/similar ones (ofc server-wide directives
shall
not and won’t be redeclared at location level).
In the modern world, use of configuration management tools, which allow
templating, allows duplicated stanzas without trouble on configuration
generation/deployment.
That is a way of looking at configuration, and everyone has his/her
views
on it.
Please, correct me if I am wrong.
On Thu, Mar 24, 2016 at 06:17:44PM +0100, B.R. wrote:
I guess the docs logic is reversed: it is explicitely stated when a
directive inherits, which must be that way because not considered the
default behavior (although I am not in Igor’s head…).
No, by default all directives are inherited from previous levels.
The only exceptions are:
Any directives that inherit do not need to be repeated.
If it does not work for you, that’s probably due to proxy_pass not
inheriting.
Thanks - that’s it – proxy_pass does not inherit, but all the proxy_set_header directives in that block do.
Only the proxy_pass directive needed to be repeated in the location
block (thank goodness!)
Why would you want to do that? Spaghetti configuration?
The proxy has a dozen lines of configuration.
The proxy_pass line doesn’t inherit, but the docs don’t mention that.
Only the proxy_pass directive not inheriting was the last thing I
expected. So I had to run duplicate blocks until things worked.
In most cases this is more or less obvious when directives are not
inherited, though docs can be a bit more clear on this.
What is not-obvious / confusing is that the *_pass items are not
inherited… but their associated directives from the same module are.
On Mar 24, 2016, at 1:17 PM, B.R. wrote:
This product uses a different paradigm that ‘minimal configuration lines’, and
Igor has nothing against duplicated blocks, which allow direct understanding of
what is in effect in the location block you are looking at, compared to
horizontal/similar ones (ofc server-wide directives shall not and won’t be
redeclared at location level).
In the modern world, use of configuration management tools, which allow
templating, allows duplicated stanzas without trouble on configuration
generation/deployment.
I’m fine with that. I’ve been using nginx for 10 years now (!) and have
a huge library of macros that are included into various blocks dozens of
times.
Right now I’m trying to open-source something I wrote to handle
lets-encrypt certificate management behind nginx.
For simplicity, I wanted to make a very concise nested block for the
documents. When there are many header variables that need to be set,
the docs can get hard for people to follow.