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 srcConclusion
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.).