Балансировка нагрузки между серверами с использованием Apache и JBoss - PullRequest
0 голосов
/ 27 апреля 2018

Я столкнулся со следующим сценарием: у меня есть три сервера, каждый с экземпляром моего приложения, развернутого в автономном JBoss, я пытаюсь использовать машину, которая будет выполнять службу балансировки нагрузки между этими тремя серверами, для этого я Я использую модуль mod_proxy_balancer от Apache (или, по крайней мере, пытаюсь), и было даже легко выполнить балансировку, он работал правильно, однако у меня возникают проблемы с сохранением сеанса пользователей и файлов cookie, потому что всякий раз, когда новый запрос сделан, балансировщик отправляет его на другой сервер, в результате чего пользователь теряет свой сеанс, я хотел бы, чтобы когда пользователь уже имел сеанс на одном из серверов, тот же ему был отправлен, или что-то типа. Можно ли достичь желаемого результата с помощью таких ресурсов? Если так, как я должен сделать такую ​​настройку? Если нет, какой другой инструмент или функцию я должен использовать?

Вот конфигурация виртуального хоста:

<VirtualHost *:80>
    ServerName server.int
    ProxyPass / balancer://balance/ stickysession=JSESSIONID|jsessionid scolonpathdelim=On
    ProxyPass /balancer-manager !
    ProxyPassReverse / balancer://balance/ stickysession=JSESSIONID|jsessionid scolonpathdelim=On
    ProxyPassReverseCookiePath / /
    <Proxy balancer://balance/>
        BalancerMember "http://server1.int" loadfactor=50
        BalancerMember "http://server2.int" loadfactor=25
        BalancerMember "http://server3.int" loadfactor=25
        ProxySet lbmethod=byrequests
    </Proxy>
    <Location /balancer-manager>
        SetHandler balancer-manager
    </Location>
</VirtualHost>

1 Ответ

0 голосов
/ 11 октября 2018

Хотя никто не ответил, я оставлю здесь решение моей проблемы, если это кому-нибудь поможет в будущем. В итоге я использовал HAProxy , который может сделать именно то, что мне нужно, очень простым способом.

frontend app
    bind *:80
    bind *:443 ssl crt /etc/haproxy/certs/cert.pem
    redirect scheme https if !{ ssl_fc }
    mode http
    default_backend app

backend app
    balance leastconn
    mode http
    option httpchk HEAD / HTTP/1.0
    cookie SERVERID insert indirect nocache
    server server1 server1.test.com:80 check weight 50 fall 3 rise 2 cookie server1
    server server2 server2.test.com:80 check weight 50 fall 3 rise 2 cookie server2
    server server3 server3.test.com:80 check weight 50 fall 3 rise 2 cookie server3
...