⑦.haproxy的cookie植入

HAProxy基于cookie实现客户端会话保持
使用ip_hash时,如果有众多用户使用相同的公网地址去访问同一个服务时,由于这些用户所使用的公网IP都为同一个,HAproxy就会把他们调度到同一后端的服务器,由此可能造成后天的单台服务器的压力过大,因此需要其他的方法来进行调度。
HAProxy可以实现插入一层cookie,当用户第一次访问会查看是否有cookie,如果没有就在响应报文中插入以程cookie返回给客户端,当用户再次访问就会根据cookie来调度请求。lvs和nginx无法实现

cookie
为当前server指定cookie值,实现基于cookie的会话黏性

cookie NAME [rewrite|insert|prefix] [indirect] [nocache] [postonly] [preserve] [httponly] [secure] [domain <domain>] [maxidle<idle>] [maxlife<life>]
NAME: cookie名称,用于持久连接
rewrite: 重写。如果之前有cookie就会覆盖了重写,或插入到前缀上
insert: 插入
prefix: 前缀
nocache: 当client和haproxy之间有缓存存在时,不缓存cookie

基于cookie实现会保持
修改配置文件,添加cooke选项

backend app
    balance     roundrobin
    cookie Haproxy_Cookie insert nocache              #定义一个key
                                                      #未服务器打赏标签  为value
    server  app1 192.168.1.254:80 check   cookie web1
    server  app2 192.168.1.254:81 check   cookie web2


haproxy实现cookie植入,实现会话保持:

1.定义key:  SERVERID
2.定义value:为server段中的每个节点起一个名称;  cookie name
3.当用户请求时,haproxy会下发一个httpheader信息,  Set-Cookies: SERVERID:web01
4.当浏览器在次请求haproxy会在request中增加一个header: cookie: SERVERID:web1
5.已便实现会话保持的方案:


ip_hash: 基于来源ip进行hash取模,已便实现会话保持;
cookie植入:haproxy很容易实现,Nginx也可以实现,需要三方模块(自行完成一下)
session共享:基于Redis实现;
posted @ 2022-07-21 15:52  老夫聊发少年狂88  阅读(125)  评论(0编辑  收藏  举报