1.经过数据库实现Session同步
2.经过Cookie实现Session同步
3.经过MEMCACHED等缓存服务器实现Session同步
4.经过Apache的相关组件实现Session同步,好比Tomcat:mod_jk-apache.so,Weblogic:mod_wl_22.so2.会话保持:最为简单的方式,一旦请求被分发到A服务器,那么以后这个会话全部的请求都会保持分发获得A服务器。
LoadModule headers_module modules/mod_headers.so
<VirtualHost 127.0.0.1:80> Header add Set-Cookie "routeId=.%{BALANCER_WORKER_ROUTE}e;path=/" env=BALANCER_ROUTE_CHANGED ServerAdmin webmaster@dummy-host.example.com ServerName 127.0.0.1 ProxyPreserveHost On ProxyRequests Off <Proxy balancer://democluster> Require all granted BalancerMember http://127.0.0.1:8080/demo route=server1 BalancerMember http://127.0.0.1:8081/demo route=server2 </Proxy> ProxyPass /framework http://127.0.0.1:8080/framework ProxyPassReverse /framework http://127.0.0.1:8080/framework ProxyPass /demo balancer://democluster stickysession=routeId ProxyPassReverse /demo balancer://democluster ErrorLog "logs/test.localhost-error_log" CustomLog "logs/test.localhost-access_log" common </VirtualHost>
Header add Set-Cookie "routeId=.%{BALANCER_WORKER_ROUTE}e;path=/" env=BALANCER_ROUTE_CHANGED在用户的浏览器中设置Cookie,Cookie值KEY是routeId,VALUE是取 %{BALANCER_WORKER_ROUTE} ,对应吉群配置中的route字段,以下配置:
BalancerMember http://127.0.0.1:8080/demo route=server1而后在设置负载的均衡的规则:
ProxyPass /demo balancer://democluster stickysession=routeId配置完成。打开浏览器通过分发以后,浏览器的Cookies就会有对应的键值