httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mladen Turk <mt...@apache.org>
Subject Re: httpd returns 500 when a route does not belong to the balancer.
Date Thu, 12 Jul 2007 14:51:59 GMT
jean-frederic clere wrote:
>>>>>
>>>>
>>>> Hmm, "nofailover=On" is used for non-matched routes.
>>>
>>> The failover stuff is between the members of a balancer not between 
>>> balancers.
>>>
>>
>> Not true.
> 
> ? In find_route_worker(proxy_balancer *balancer...)

nofailover == sticky_force

<snip>
    runtime = find_session_route(*balancer, r, &route, url);
    if (runtime) {
       ...
    }
    else if (route && (*balancer)->sticky_force) {
         ...
         return HTTP_SERVICE_UNAVAILABLE;
     }
</snip>

So it means that if route doesn't match the runtime
will be NULL. However if there is route *and* nofailover=On
return HTTP_SERVICE_UNAVAILABLE.

By default (nofilover=Off) it will match the URI which might
lead to a different balancer or node.

nofailover is used to return 503 in case there is miss matching
route (session affinity mark), and it's actually a sticky_force,
and you cannot have a sticky_force and cross instance sessions
without session replication (thus you don't need route)

Regards,
Mladen.


Mime
View raw message