Tengo un sistema que equilibra la carga a través de una cookie, pero quiero usar un parámetro de URL como alternativa. (Específicamente, tengo una aplicación front-end que no admite cookies). Mi configuración es un poco compleja: tengo un sistema multijugador y uso una tabla de palo con esta cookie para asegurarme de que diferentes personas que juegan el mismo juego vayan al mismo servidor. Esto funciona muy bien, excepto que los parámetros de URL no parecen hacer nada. Esto es todo con haproxy 1.5dev17
Mi backend relevante es:
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
Tenga en cuenta que SIMULATE_STICKY_SESSION es generado por mi aplicación (según el equipo del jugador).
Cuando llamo a la URL, necesito pasar un jsessionid (para que Tomcat encuentre la sesión correcta). Entonces estoy haciendo
Esto no parece estar recogiendo el parámetro de sesión fija ya que el 50% del tiempo va al servidor incorrecto. Intenté usar el param como una cadena de consulta (después de una marca?) Pero tampoco funcionó. ¿Qué estoy haciendo mal?
fuente