Apache 负载均衡 会话保持配置

Apache 做了负载均衡之后,要保持一个用户的登录状态,主要有两种实现方式:
1.Session的同步:将各负载服务器中的Session共享,或者相互复制,主要有以下方式
1.通过数据库实现Session同步 
2.通过Cookie实现Session同步 
3.通过MEMCACHED等缓存服务器实现Session同步 
4.通过Apache的相关组件实现Session同步,比如Tomcat:mod_jk-apache.so,Weblogic:mod_wl_22.so
2.会话保持:最为简单的方式,一旦请求被分发到A服务器,那么之后这个会话所有的请求都会保持分发得到A服务器。
第一步:开启mod_headers.so
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就会有对应的键值

转载于:https://my.oschina.net/u/1175235/blog/357036

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值