"proxy_intercept_errors on" with @location setup

Francis Daly francis at daoine.org
Sat Sep 18 07:34:09 UTC 2021


On Fri, Sep 17, 2021 at 02:36:11PM -0300, Fabiano Furtado Pessoa Coelho wrote:
> On Thu, Sep 16, 2021 at 7:37 PM Francis Daly wrote:
> > On Thu, Sep 16, 2021 at 04:25:59PM -0300, Fabiano Furtado Pessoa Coelho wrote:

Hi there,

> > > The only valid configuration I've found to intercept errors is not
> > > using the @location but I want to use it to simplify the
> > > configuration.
> >
> > Depending on how you understand "simplify" -- you could potentially
> > "include" a file with the common pieces and just have the unique
> > directives in each location{}; or you could put the common pieces (apart
> > from proxy_pass) outside the location{}s, and just have the unique
> > directives and proxy_pass inside the location{}s (note: your current
> > example has the same set of proxy_set_header directives in each
> > location{}, so this can work); or potentially you could use an external
> > macro-processing tool to generate your complicated nginx.conf from
> > whatever simplified input you want to use.
> 
> I think I will "put the common pieces (apart from proxy_pass) outside
> the location{}s".
> This is the best config for me!

Good to hear that you found a configuration that works for you :-)

Once you understand how nginx uses its config, and how directive
inheritance works, then you won't be surprised by the behaviour you
configured.

(With a few exceptions, often related to the rewrite module, the general
pattern is: one request is handled in one location{}; and each directive
*not* explicit in that location either inherits from the surrounding
context, or does not inherit at all. And a directive is something like
"proxy_set_header", not "proxy_set_header X-Real-IP".)

Good luck with it,

	f
-- 
Francis Daly        francis at daoine.org


More information about the nginx mailing list