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.