Question Utilisation de paramètres d'URL pour l'équilibrage de charge avec HAProxy


J'ai un système d'équilibrage de charge via un cookie, mais je souhaite utiliser un paramètre d'URL comme alternative. (Plus précisément, j'ai une application frontale qui ne prend pas en charge les cookies). Ma configuration est un peu complexe. Je dispose d’un système multijoueur et j’utilise une table de lecture avec ce cookie pour que différentes personnes qui jouent au même jeu s’adressent au même serveur. Cela fonctionne très bien, sauf que les paramètres d'URL ne semblent rien faire. C'est tout avec haproxy 1.5dev17

Mon backend pertinent est:

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

Notez que SIMULATE_STICKY_SESSION est généré par mon application (basée sur l'équipe du joueur).

Lorsque j'appelle l'URL, je dois passer un jsessionid (pour que Tomcat trouve la session correcte). Donc je fais

http://my.domain.com/myapp/url;SIMULATE_STICKY_SESSION=1918C909D3F30DB09C2F96B75C57D015.app1+jsessionid;jsessionid1919C909D3F30DB09C2F96B57F015.app1

Cela ne semble pas prendre le paramètre de session persistant, car 50% du temps, cela revient au mauvais serveur. J'ai essayé d'utiliser le paramètre comme une chaîne de requête (après une marque?) Mais cela n'a pas fonctionné non plus. Qu'est-ce que je fais mal?


9
2018-04-01 08:19


origine




Réponses:


Une réponse a été fournie ici sur la liste de diffusion haproxy

extrait

il suffit de mettre à jour la ligne ci-dessous dans votre configuration pour:

 stick on url_param(SIMULATE_STICKY_SESSION,;) table simulate

Par défaut, url_param recherche un paramètre après le point d'interrogation (?).   La configuration ci-dessus l’écrase en recherchant votre cookie dans   point-virgule (;).

Remarque: vous devez exécuter une version récente de 1.5dev haproxy, de préférence le dev 18.


3
2018-04-05 06:19



Comme indiqué dans la liste des utilisateurs, la réponse est de changer la ligne en: coller sur la table url_param (SIMULATE_STICKY_SESSION ,;) simuler - Will Glass