On Jan 21, 2013, at 4:09 PM, Rainer Jung <rainer.j...@kippdata.de> wrote:
> On 21.01.2013 15:26, Jim Jagielski wrote: >> Disabling BalancerInherit is only needed when using the >> Balancer Manager and only if there are conflicts between >> a Balancer in the top-level server and a vhost. With BI On, >> if a balancer is defined at the top level, then vhosts A >> and B get their own individual copy. But when using the Balancer >> Manager, it may be difficult or impossible to affect change in >> the balancer you want. If you use BM to change the Balancer >> of the top-level server, those changes do not get applied to >> the vhosts that had inherited them when httpd was 1st started. >> This can be confusing. > > Understood and agreed. > >> Having BI Off ensures that: >> >> 1. All Balancers must be explicitly defined for whatever >> vhosts are using them >> 2. All changes on those Balancers affect ONLY that specific >> server. > > I find it hard to really understand what's going on after applying the > patch. Many configuration items are still inherited even with BI Off, > but the underlying balancers and/or workers are no longer inherited. > Examples are ProxyPass or <Proxy>. I am unsure what kind of behavior > this could lead to. For example I tested: > What's important is to recall that it's just the Balancers and Workers which are affected. Nothing else. Thats the reason for the directive name-change, to make it clear that it only affects those 2 components. You would have noticed that if you had used ProxyPass /p/ http://myvhost:8080/ then even with BI Off, it would have "worked" in the vhost case. Again, the balancer is defined in the top level server but it's not inherited. Also note that BI *only* is of interest if people do silly things like define all their Balancers at the top level and use them only in Vhosts. If they do reasonable things, like define all Proxy-related stuff in the vhosts where they should apply, then it doesn't matter if BI is off or on. BI exists only for edge-cases, and that's why it defaults to the existing behavior; but in some, you want to be able to disable that inheritance.