HAProxy ile yük dengeleme için URL parametrelerini kullanma


9

Bir çerez üzerinden yük dengeleme olan bir sistemim var, ancak alternatif olarak bir URL parametresi kullanmak istiyorum. (Özellikle, çerezleri desteklemeyen bir ön uç uygulamam var). Kurulumum biraz karmaşık - çok oyunculu bir sistemim var ve aynı oyunu oynayan farklı kişilerin aynı sunucuya gitmesini sağlamak için bu çerezle bir çubuk tablo kullanıyorum. URL parametreleri hiçbir şey yapmıyor gibi görünüyor, ancak bu harika çalışıyor. Bu hepsi haproxy 1.5dev17 ile

İlgili arka ucum:

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 uygulamasının benim uygulamam tarafından oluşturulduğunu unutmayın (oyuncu ekibine göre).

URL'yi aradığımda, bir jsessionid iletmem gerekiyor (böylece Tomcat doğru oturumu bulacak). Bu yüzden yapıyorum

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

Yapışkan oturum parametresini yanlış sunucuya gittiği zamanın% 50'si olarak alıyor gibi görünmüyor. Bir sorgu dizesi (sonra? İşareti) sonra param kullanarak çalıştı ama o da işe yaramadı. Neyi yanlış yapıyorum?

Yanıtlar:


3

Burada haproksi posta listesinde bir yanıt verildi

alıntı

yapılandırmanızda aşağıdaki satırı güncelleyin:

 stick on url_param(SIMULATE_STICKY_SESSION,;) table simulate

Varsayılan olarak, url_param soru işaretinden (?) Sonra bir parametre arar. Yukarıdaki yapılandırma, çerezinizi noktalı virgülden (;) arayarak bunun üzerine yazar.

Not: Yeni bir 1.5dev haproksi, tercihen dev 18 çalıştırıyor olmalısınız.


Kullanıcı listesinde belirtildiği gibi, cevap satırı şu şekilde değiştirmektir: url_param üzerinde sopa (SIMULATE_STICKY_SESSION ;;) tablo simülasyonu
Cam
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.