会话保存
1) session sticky
source_ip 原地址绑定
nginx: ip_hash
haproxy: source
lvs: sh
cookie: 基于cookie绑定
nginx:hash
haproxy: cookie
(2) session cluster:delta session manager
(3) session server:redis(store), memcached(cache) 会话存储服务器
cookie:
会话粘性的实现方法:
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 在配置文件中加入 在cookie中会加入一行routeid
<proxy balancer://tcsrvs>
BalancerMember http://172.18.100.67:8080 route=TomcatA loadfactor=1 若是第一个cookie中是tomcatA
BalancerMember http://172.18.100.68:8080 route=TomcatB loadfactor=2
ProxySet lbmethod=byrequests
ProxySet stickysession=ROUTEID
</Proxy>
<VirtualHost *:80>
ServerName lb.magedu.com
ProxyVia On
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
ProxyPass / balancer://tcsrvs/
ProxyPassReverse / balancer://tcsrvs/
<Location />
Require all granted
</Location>
</VirtualHost>
http自己的管理界面:
态页能实现一些软管理功能
启用管理接口:
<Location /balancer-manager>
SetHandler balancer-manager
ProxyPass ! 不反代到后端
Require all granted
</Location>
重启服务:
会话服务器:
memcache:是一个缓冲,所有数据在缓存中,不存持久化数据,自身不具有冗余,
varnish:自身有冗余能力,可以存持久化存储数据到磁盘上,可以实现主从复制同步,
tomcat自己内建的会话集群,cluster
为了防止会话的变化,需要配置集群,