upstream: ip_hash and backup

Maxim Dounin mdounin at mdounin.ru
Fri Jul 1 09:53:08 MSD 2011


Hello!

On Thu, Jun 30, 2011 at 08:31:35PM +0100, John Moore wrote:

> On 30/06/11 19:49, Maxim Dounin wrote:
> >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;
> >         }
> >     }
> >
> >
> That's just what I need, thanks. Is this dependent on some recent
> version of nginx? I'm running 0.7.65.

Named locations are available starting from 0.6.6, so 0.7.65 
should be fine.  You may want to upgrade anyway though, 0.7.65 is 
rather old and not really supported.

Maxim Dounin



More information about the nginx mailing list