upstream: ip_hash and backup
Maxim Dounin
mdounin at mdounin.ru
Thu Jun 30 22:49:31 MSD 2011
Hello!
On Thu, Jun 30, 2011 at 07:35:24PM +0100, John Moore wrote:
> I'm using the upstream module to load balance between 2 back-end
> servers, using ip_hash to effect a kind of 'stickiness' (making it
> more likely that subsequent requests from the same client will go to
> the same back-end server). Now I want to add a 3rd back-end server
> into the mix, but which will only come into play if the other 2 are
> failing. There's a handy 'backup' parameter I can use for this,
> except that according to the docs it cannot be combined with the
> ip_hash directive. I'm wondering whether there is some other way to
> achieve what I want here? Effectively, the ip_hash becomes
> irrelevant once it's failed over to this backup server as there is
> only one.
Use error_page based fallback instead, i.e. something like this:
upstream backends {
ip_hash;
server 10.0.0.1;
server 10.0.0.2;
}
upstream backup {
server 10.0.0.3;
}
server {
...
location / {
error_page 502 504 = @fallback;
proxy_pass http://backends;
}
location @fallback {
proxy_pass http://backup;
}
}
Maxim Dounin
More information about the nginx
mailing list