Disons que j'ai 2 serveurs - SA et SB. Est-il possible de configurer Haproxy pour fonctionner comme ceci:
Toutes les connexions vont à SA -> SA bientôt -> Haproxy commute toutes les connexions à SB -> jusqu'à ce que SB ne soit pas bas - aucune connexion ne va pas à SA, Même si c'est recommencé -> SB Down -> Haproxy passe à SA ...
En bref, j'aimerais que Haproxy ne bascule que lorsque le serveur actuel diminue. Peut-être que je devrais utiliser qcore que haproxy?
Consultez cette configuration:
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
Toutes les demandes vont frapper web01 par défaut. Web02 ne sera pas utilisé. Si Web01 arrête de répondre, après 30 secondes (3 chèques à des intervalles de 10 secondes), le serveur sera déconseillé hors ligne. Web02 sera mis en ligne et toutes les demandes vont frapper.
Si web01 récupère, il ne sera rapporté qu'en ligne une fois 999999999 chèques à un intervalle de 10 secondes passes - ce qui n'est effectivement jamais.
Si vous n'avez que deux, et exactement deux serveurs, il peut être plus logique d'utiliser un VIP pour le service que vous gérez via Pacemaker/Corosync pour le rendre hautement disponible.
Il est également possible avec Haproxy, en marquant SB comme serveur de sauvegarde. De cette façon, il est utilisé uniquement lorsque SA n'est pas disponible:
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
Cependant, cela n'accomcit pas la deuxième partie de ce que vous voulez: cela commencera à utiliser un SA===== Dès qu'il est de retour. Je ne suis pas sûr de savoir s'il y a une option pour que Haproxy se comporte de la voie vous voulez. J'ai au moins jamais utilisé.