HAproxy текущий сеанс равен нулю
У меня есть некоторые проблемы на липких сессиях с HAproxy.
Haproxy считает каждый запрос новым сеансом. У меня есть сервлет Java, который создает cookie JSESSIONID.
Если я обновлю эту страницу 5 раз. Сервлет считает это за 1 сессию и 5 запросов от этого sessionid. Но на странице статистики HAproxy показано 5 разных сессий. И 0 текущих сессий. Haproxy префикс файла cookie корректен, cookie: "JSESSIONID=test1~3fjp6734ys78grhk50ler16r" и является постоянным. Я бью один и тот же сервер каждый раз.
Это мой конфигурационный файл:
global
daemon
maxconn 256
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:3333
acl Testrule path -m beg /test
use_backend Test if Testrule
backend Test
option httpchk GET /test
cookie JSESSIONID prefix
appsession JSESSIONID len 52 timeout 20m prefix
server test2 vm-stapp-146:9003 check cookie test2
server test1 vm-stapp-145:9003 check cookie test1
listen stats *:3334
mode http
stats enable
stats uri /proxy-stats
stats admin if TRUE
Почему на странице статистики каждый запрос отображается как новый сеанс? И это всегда показывает 0 текущих сеансов.
Благодарю.
2 ответа
Число сеансов HAProxy относится к сеансам tcpip, а не к сеансам браузера. Счетчик равен 0, потому что в то время, когда вы запрашивали статистику, ничего не происходило. Это довольно типично для незанятых нагрузок.
Если ваши запросы из одного и того же сеанса попадают на один и тот же внутренний сервер, это звучит так, как будто липкие сеансы работают.
Тот stats
столбец, который вы хотите найти, когда постоянство сеанса тестирования lbtot
, который увеличивается всякий раз, когда клиент делает запрос без распознанного сеансового куки.