HAProxy switch only in case of server down

Let's say I have 2 servers - SA and SB. Is it possible to configure HAProxy to work like this:

All connections goes to SA -> SA goes down -> HAProxy switches all connections to SB -> until SB is not down - no connections go to SA, even if it is up again -> SB down -> HAProxy switches to SA...

In brief I would like HAProxy to switch only when current server goes down. Maybe I should use sth else than HAProxy?


Check out this config:

listen my-server 0.0.0.0:80
    balance roundrobin
    server web01 10.10.10.1:80 check inter 10s fall 3 rise 99999999
    server web02 10.10.10.2:80 check backup

All requests will hit web01 by default. web02 will not be used. If web01 stops responding, after 30s (3 checks at 10 seconds intervals) the server will be taken offline. web02 will be brought online and all requests will hit it.

If web01 recovers, it will only be brought back online once 99999999 checks at an interval of 10 seconds pass - which is effectively never.


If you have only two, and exactly two servers, it may make more sense to use a vip for the service that you manage via pacemaker/corosync to make it highly available.

It is possible with haproxy too, by marking SB as backup server. That way it's only used when SA is not available:

backend mybackend
mode            http
balance         roundrobin
option          httpchk /test.html
server          server1.example.com server1.example.com:80 weight 1 check port 80 inter 5s rise 3 fall 2
server          server2.example.com server2.example.com:80 backup weight 1 check port 80 inter 5s rise 3 fall 2

However, this does not accomplish part two of what you want: it will start using A SA again as soon as it's back. I'm not sure whether there's an option to make haproxy behave the way you want. I've at least never used it.