httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Ruggeri <>
Subject Re: Missing proxy_balancer feature
Date Sun, 04 Jul 2010 14:38:36 GMT
On 7/1/2010 1:46 AM, jean-frederic clere wrote:
> On 07/01/2010 03:14 AM, Daniel Ruggeri wrote:
>> On 6/30/2010 7:34 AM, jean-frederic clere wrote:
>>> On 06/30/2010 04:17 AM, William A. Rowe Jr. wrote:
>>>> Yet again, in class another student pointed out that the
>>>> Enabled/Disabled
>>>> choice in mod_proxy_balancer totally ignores the concept of quiescing,
>>>> where we are taking a server offline, but continuing to serve those
>>>> requests targeted by session to that server.  Once the number of
>>>> sessions
>>>> settles on something quite low, the user then takes that server offline
>>>> entirely and the remaining users are subjected to 'expired session'
>>>> results.
>>>> A boolean Enabled/Disabled flag doesn't address this need.
>>>> Does anyone feel like working on this feature, since those I had
>>>> previously approached didn't have all that much interest, or got
>>>> busy with other things?
>>> There are several things that requires improvements:
>>> 1 - The default load balancing logic doesn't work well when you restart
>>> a back-end node.
>>> ...
>>> Cheers
>>> Jean-Frederic
>> Jean-Frederic;
>>     Can you elaborate more on point 1? I have had issues where a back end
>> application was not ready during a restart and throws a 503 to Apache.
>> Since this is a perfectly valid response to the proxied request, Apache
>> happily sends it along to the user. I wrote a bug (48939) and submitted
>> a patch that creates a configuration directive to help mitigate this
>> issue which is the most significant issue I have come across during a
>> simple back end restart. The patch is currently proposed in STATUS, but
>> has not received votes to go forward (or stay in STATUS).
> That is something different the algorithm used doesn't work correctly
> when you have long lasting sessions and the load for the past is not
> forgotten... Basically to much load is going to the returning back-end.
> Your patch is just a work-around to the problem that httpd doesn't know
> that the back-end shouldn't be used at that time.
> Cheers
> Jean-Frederic
    That's a very good point and a qualm I have had with httpd for a 
while myself. As it is, the current balancer setup relies on live 
traffic to figure out if the backend is OK. Some hardware load balancers 
have the ability to "ping" backends with anything from simple TCP, HTTP 
HEAD or even SSL handshakes. Perhaps adding something like that to HTTPD 
would be the trick? The logistics of configuring such a thing might be a 
little complicated in httpd.conf... perhaps another argument that can be 
passed to ProxyPass?
Configured like so?
ProxyPass (or ProxySet or BalancerMember) /context 
http://someBackend:1234/context httpProbe="HEAD /context/" 

Of course, this is all conceptual - what do you think of the idea? While 
this is a feature that would be *incredibly* useful, I don't think I 
have the required expertise with httpd's code to execute it.

Daniel Ruggeri

View raw message