频道栏目
首页 > 网络 > 其他 > 正文

HAProxy基于cookie实现客户端会话保持-Masuri-51CTO博客

2019-06-10 19:12:34           
收藏   我要投稿
HAProxy基于cookie实现客户端会话保持

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

cookie <value>

为当前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选项

listen web
 bind 172.20.27.20:80
 mode http
 cookie SERVER-COOKIE insert indirect nocache           #插入cookie选项
 option forwardfor
 server web1 192.168.27.21:80 cookie web1 check inter 3000 fall 3 rise 5    #在后端服务器中拆入cookie的值
 server web2 192.168.27.22:80 cookie web2 check inter 3000 fall 3 rise 5
测试

使用curl来查看报文头部

[root@localhost ~]# curl -I www.mylinuxops.com
HTTP/1.1 200 OK
Server: nginx/1.17.0
Date: Tue, 04 Jun 2019 11:41:23 GMT
Content-Type: text/html
Content-Length: 8
Last-Modified: Tue, 04 Jun 2019 11:29:30 GMT
ETag: "5cf6561a-8"
Accept-Ranges: bytes
Set-Cookie: SERVER-COOKIE=web2; path=/              #此为插入的cookie信息
Cache-control: private

由于curl命令无法记录cookie,接下来使用浏览器来访问HAProxy基于cookie实现客户端会话保持

相关TAG标签
上一篇:keepalived+lvs基于http检测-Masuri-51CTO博客
下一篇:keepalived+lvs配置sorryserver-Masuri-51CTO博客
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站