Ho un sistema che esegue il bilanciamento del carico tramite un cookie, ma desidero utilizzare un parametro URL come alternativa. (In particolare, ho un'app front-end che non supporta i cookie). La mia configurazione è un po 'complessa - ho un sistema multiplayer e utilizzo una tabella di stick con questo cookie per assicurarmi che persone diverse che giocano lo stesso gioco vadano sullo stesso server. Funziona benissimo, tranne per il fatto che i parametri URL non sembrano fare nulla. Questo è tutto con haproxy 1.5dev17
Il mio backend rilevante è:
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
option http-server-close
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
backend simulate
option httpchk OPTIONS /simulate/api/status
stick-table type string len 40 size 5M expire 30m
stick store-response set-cookie(SIMULATE_STICKY_SESSION) table simulate
stick on cookie(SIMULATE_STICKY_SESSION) table simulate
stick on url_param(SIMULATE_STICKY_SESSION) table simulate
server app1 10.0.2.11:8080 cookie app1 check inter 10000
server app2 10.0.3.11:8080 cookie app2 check inter 10000
Nota che SIMULATE_STICKY_SESSION è generato dalla mia app (in base alla squadra del giocatore).
Quando chiamo l'URL, devo passare un jsessionid (in modo che Tomcat trovi la sessione corretta). Quindi lo sto facendo
Questo non sembra raccogliere il parametro della sessione appiccicosa come il 50% delle volte che va al server sbagliato. Ho provato a usare il param come stringa di query (dopo un segno?) Ma neanche quello ha funzionato. Che cosa sto facendo di sbagliato?