Saya memiliki sistem yang memuat penyeimbangan melalui cookie, tetapi saya ingin menggunakan parameter URL sebagai alternatif. (Secara khusus, saya memiliki aplikasi ujung depan yang tidak mendukung cookie). Setup saya sedikit rumit - Saya memiliki sistem multipemain dan saya menggunakan tabel stick dengan cookie ini untuk memastikan orang yang berbeda memainkan game yang sama pergi ke server yang sama. Ini berfungsi dengan baik, kecuali bahwa parameter URL tampaknya tidak melakukan apa-apa. Ini semua dengan haproxy 1.5dev17
Backend saya yang relevan adalah:
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
Perhatikan bahwa SIMULATE_STICKY_SESSION dihasilkan oleh aplikasi saya (berdasarkan tim pemain).
Ketika saya memanggil URL, saya harus mengirimkan jsessionid (sehingga Tomcat akan menemukan sesi yang benar). Jadi saya lakukan
Ini tampaknya tidak mengambil parameter sesi lengket karena 50% dari waktu itu pergi ke server yang salah. Saya mencoba menggunakan param sebagai string kueri (setelah tanda?) Tetapi itu tidak berhasil. Apa yang saya lakukan salah?
sumber