proxy_set_header directives don't inherit from father context

Francis Daly francis at
Wed Jul 5 07:20:17 UTC 2017

On Wed, Jul 05, 2017 at 02:57:51PM +0900, nanaya wrote:
> On Wed, Jul 5, 2017, at 14:41, foxgab wrote:

Hi there,

> > i expected the X-Forwarded-For and X-Forwarded-Proto header will be set,
> > but it didn't.
> > what happend?

Your expectation was wrong.

> Quite a few of additive configs (proxy_set_header, add_header) are only
> inherited if there's no same directive set at current block.

Correct; except I'd say that *all* directives are inherited by
replacement, or not inherited.

There are some pairs of directives where setting one will cause the
other not to be inherited either, but they should be clearly related to
each other.

> > These directives are inherited from the previous level if and only if there are no proxy_set_header directives defined on the current level.

The person writing the documentation gets to decide what should be there;
I think it would be more useful to make it clear that *everything* works
that way, apart from the few exceptions that are not inherited at all
(which are, in the main, the *_pass directives).

Francis Daly        francis at

More information about the nginx mailing list