Mam system równoważący obciążenie za pomocą pliku cookie, ale chcę użyć parametru adresu URL jako alternatywy. (W szczególności mam aplikację typu front-end, która nie obsługuje plików cookie). Moja konfiguracja jest trochę skomplikowana - mam system do gry wieloosobowej i używam stolika z tym plikiem cookie, aby upewnić się, że różne osoby grające w tę samą grę trafią na ten sam serwer. Działa to świetnie, z wyjątkiem tego, że parametry adresu URL wydają się nic nie robić. To wszystko z haproxy 1.5dev17
Moje odpowiednie zaplecze to:
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
Pamiętaj, że moja aplikacja generuje SIMULATE_STICKY_SESSION (na podstawie zespołu gracza).
Kiedy dzwonię do adresu URL, muszę przekazać jsessionid (aby Tomcat znalazł prawidłową sesję). Więc robię
Nie wydaje się, aby pobierało parametr lepkiej sesji, ponieważ 50% czasu spędza na niewłaściwym serwerze. Próbowałem użyć parametru jako ciągu zapytania (po znaku?), Ale to też nie zadziałało. Co ja robię źle?