Publié le : 09/12/2024 à 10:00 Mis à jour le : 07/06/2026 à 13:41 Vues : 1 181

Comprendre comment garantir qu'un utilisateur reste sur le même serveur backend durant toute sa session.

1. Persistance par Cookie

La méthode la plus fiable pour les applications HTTP.

Insertion de Cookie

HAProxy insère un cookie dans la réponse du serveur. Au retour, il lit ce cookie pour savoir vers quel serveur diriger la requête.

backend app_servers
    balance roundrobin
    cookie SERVERID insert indirect nocache
    server s1 10.0.0.1:80 check cookie s1
    server s2 10.0.0.2:80 check cookie s2

2. Persistance par IP Source

Utilisée quand l'application ne gère pas les cookies ou pour du trafic non-HTTP.

L'algorithme source

L'IP de l'utilisateur est hachée pour désigner un serveur. Simple, mais problématique si beaucoup d'utilisateurs partagent la même IP (ex: entreprise via un proxy).

backend app_servers
    balance source
    server s1 10.0.0.1:80 check

3. Les Stick-Tables

La mémoire interne de HAProxy pour une persistance avancée.

Stockage en mémoire

Les stick-tables permettent de stocker des informations (IP, ID de session) et de les partager entre plusieurs nœuds HAProxy via Peers.

backend myapp
    stick-table type ip size 100k expire 30m
    stick on src

Conclusion

Maintenir l'état utilisateur.

Choisir la bonne méthode

Le cookie est privilégié pour le Web, tandis que l'IP source ou les stick-tables sont indispensables pour les flux persistants complexes (TCP, RDP, etc.).

Lien copié dans le presse-papiers !