upstream: ip_hash and backup

Maxim Dounin mdounin at
Thu Jun 30 22:49:31 MSD 2011


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 {

    upstream backup {

    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