У меня есть система балансировки нагрузки через cookie, но я хочу использовать параметр URL в качестве альтернативы. (В частности, у меня есть интерфейсное приложение, которое не поддерживает куки). Мои настройки немного сложны - у меня многопользовательская система, и я использую таблицу флешек с этим cookie, чтобы разные люди, играющие в одну и ту же игру, заходили на один и тот же сервер. Это прекрасно работает, за исключением того, что параметры URL, похоже, ничего не делают. Это все с haproxy 1.5dev17
Мой соответствующий бэкэнд:
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
Обратите внимание, что SIMULATE_STICKY_SESSION генерируется моим приложением (на основе команды игрока).
Когда я вызываю URL, мне нужно передать jsessionid (чтобы Tomcat нашел правильный сеанс). Так я делаю
Это не похоже на то, что параметр липкой сессии принимается за 50% времени, когда он переходит на неправильный сервер. Я попытался использовать параметр в качестве строки запроса (после знака?), Но это тоже не сработало. Что я делаю неправильно?
источник