https://bz.apache.org/bugzilla/show_bug.cgi?id=58934
Bug ID: 58934
Summary: mod_proxy initial BalancerMember settings not applied
to just that Proxy Balancer on startup
Product: Apache httpd-2
Version: 2.2.31
Hardware: Other
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: mod_proxy_balancer
Assignee: [email protected]
Reporter: [email protected]
We have multiple Proxy Balancers setup using the same BalancerMembers but
different URLs in the ProxyPass statements. On initial startup, if mod_proxy
finds one BalancerMember with some initial settings, those carry over to all
BalancerMembers regardless of the Proxy Balancer as long as the host:port
match. If you hit the status page, you can adjust individual BalancerMembers
accordingly.
Here is an example:
<Location /a>
Order allow,deny
Allow from all
<LimitExcept GET POST>
Deny from all
</LimitExcept>
ProxyPass balancer://a_Cluster/some_url
ProxyPassReverse balancer://a_Cluster/some_url
</Location>
<Proxy balancer://a_Cluster>
BalancerMember http://node1.com loadfactor=1 status=D
BalancerMember http://node2.com loadfactor=1
ProxySet lbmethod=byrequests
</Proxy>
<Location /b>
Order allow,deny
Allow from all
<LimitExcept GET POST>
Deny from all
</LimitExcept>
ProxyPass balancer://b_Cluster/some_other_url
ProxyPassReverse balancer://b_Cluster/some_other_url
</Location>
<Proxy balancer://b_Cluster>
BalancerMember http://node1.com loadfactor=1
BalancerMember http://node2.com loadfactor=1
ProxySet lbmethod=byrequests
</Proxy>
<Location /c>
Order allow,deny
Allow from all
<LimitExcept GET POST>
Deny from all
</LimitExcept>
ProxyPass balancer://c_Cluster/yet_another_url
ProxyPassReverse balancer://c_Cluster/yet_another_url
</Location>
<Proxy balancer://c_Cluster>
BalancerMember http://node1.com loadfactor=1
ProxySet lbmethod=byrequests
</Proxy>
We would like to have the first BalancerMember in 'a_Cluster' come up disabled
but the others using the same host and port to be enabled in the other
LoadBalancers.
When Apache starts, you get the following:
LoadBalancer Status for balancer://a_cluster
Worker URL Route RouteRedir Factor Set Status Elected To
From
http://node1.com 1 0 Dis 0 0 0
http://node2.com 1 0 Ok 0 0 0
LoadBalancer Status for balancer://b_cluster
Worker URL Route RouteRedir Factor Set Status Elected To
From
http://node1.com 1 0 Dis 0 0 0
http://node2.com 1 0 Ok 0 0 0
LoadBalancer Status for balancer://c_cluster
Worker URL Route RouteRedir Factor Set Status Elected To
From
http://node1.com 1 0 Dis 0 0 0
So even though only the first LoadBalancer had the first Worker URL set for
disabled, all that match the host:port are all set disabled. This does the
same thing if you try and use status=H as well.
This also happens if you use 'ibset'.
Using 'factor' only sets the one for that LoadBalancer as I would expect.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]