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, который увеличивается всякий раз, когда клиент делает запрос без распознанного сеансового куки.