httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Jung <>
Subject Re: svn commit: r1422584 - /httpd/httpd/branches/2.4.x/STATUS
Date Mon, 17 Dec 2012 09:23:04 GMT
On 17.12.2012 09:53, Graham Leggett wrote:
> On 16 Dec 2012, at 4:51 PM, Rainer Jung <> wrote:
>> Graham, can you give an example? I don't get the "any attempt at setting
>> any directive silently unsets an arbitrary selection of other proxy
>> directives at the same time".
> Take a look at this code specifically:
> +    else {
> +        ps->proxies = overrides->proxies;
> +        ps->sec_proxy = overrides->sec_proxy;
> +        ps->aliases = overrides->aliases;
> +        ps->noproxies = overrides->noproxies;
> +        ps->dirconn = overrides->dirconn;
> +        ps->workers = overrides->workers;
> +        ps->balancers = overrides->balancers;
> +    }
> The above code resets seven proxy directives to their default values, whether they have
been overridden by the administrator or not. There is no merge going on at all. As a result,
an administrator that adds any unrelated global scoped proxy directive causes the above seven
directives to disappear as a side effect, without warning or reason.

That's the whole purpose of the "ProxyPassInherit Off" setting. If you
switch the global setting from "On" to "Off", then global proxy targets
and workers are not merged to any vhost. If you switch to "Off" only in
a VHost, then only that VHost does not inherit (merge) the globally
defined ones. If you switch to "Off" globally but again to "On" in a
VHost, then only those VHosts will inherit.

I still don't understand "an administrator that adds any unrelated
global scoped proxy directive causes the above seven directives to
disappear". The merging is only turned off (directives disappear), if
the administrator adds "ProxyPassInherit Off", and that's not any
unrelated directive. The whole purpose of that directive is turning the
merging of.

I think Jim originally had a technical reason related to the balancer
manager for this. I didn't check that reasoning, but from my own
experience, ProxyPass and similar are often related to specific vhosts,
so defining a global ProxyPass and then having it automatically in every
VHost can be quite a surprise. I agree that this change is disruptive,
but that's why we made the default still behaving like before (merge



View raw message