Назад | Перейти на главную страницу

Текущая сессия 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 текущих сеансов.

Спасибо.

Счетчик сеансов HAProxy относится к сеансам tcpip, а не к сеансам браузера. Счетчик равен 0, потому что в то время, когда вы запрашивали статистику, ее не было. Это довольно типично для незанятого балансировщика нагрузки.

Если ваши запросы из одного и того же сеанса попадают на один и тот же внутренний сервер, похоже, что липкие сеансы работают.

Который stats столбец, который вы хотите искать, когда постоянство сеанса тестирования lbtot, который увеличивается всякий раз, когда клиент делает запрос без распознанного файла cookie сеанса.