Haproxy基于cookie的会话保持

cookie value:为当前server指定cookie值,实现基于cookie的会话黏性,相对于基于 source 地址hash 调度算法对客户端的粒度更精准,但同时也加大了haproxy负载,目前此模式使用较少, 已经被session 共享服务器代替。

注意:不支持tcp mode,使用http mode

一、配置选项

cookie name [ rewrite | insert | prefix ][ indirect ] [ nocache ][ postonly ] [ preserve ][ httponly ] [ secure ][ domain ]* [ maxidle ][ maxlife ]

  • name:cookie 的 key名称,用于实现持久连接
  • insert: 插入新的cookie,默认不插入cookie
  • indirect: 如果客户端已经有cookie,则不会再发送cookie信息
  • nocache: 当client和hapoxy之间有缓存服务器(如:CDN)时,不允许中间缓存器缓存cookie,因为这会导致很多经过同一个CDN的请求都发送到同一台后端服务器

二、配置实例

1、编辑haproxy.cfg配置文件

 vim /etc/haproxy/haproxy.cfg

重启服务:

systemctl restart haproxy.service

2、后端配置

web服务使用的是nginx,确保服务开启。

RS1:

echo webserver1 172.25.254.10 > /usr/share/nginx/html/index.html

RS2:

echo webserver1 172.25.254.20 > /usr/share/nginx/html/index.html

3、测试结果

不同浏览器访问:

命令行验证:

curl访问时指定cookie:

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HAProxy中进行会话保持可以通过使用Cookie或基于源IP的方法来实现。 1. 使用Cookie进行会话保持HAProxy可以通过在响应中设置Cookie来实现会话保持。当客户端发送请求时,HAProxy会检查请求中是否包含有效的会话Cookie。如果存在,它将根据Cookie的值将请求路由到相应的后端服务器。如果不存在,HAProxy可以选择一个后端服务器,并在响应中设置一个新的会话Cookie,以便客户端在后续请求中使用。 以下是一个示例配置: ``` frontend my_frontend bind 0.0.0.0:80 mode http default_backend my_backend backend my_backend mode http balance roundrobin cookie JSESSIONID prefix server backend1 192.168.0.1:8080 cookie server1 server backend2 192.168.0.2:8080 cookie server2 ``` 在上述配置中,HAProxy使用名为"JSESSIONID"的Cookie来进行会话保持。"cookie"关键字指定了Cookie的名称,并使用"prefix"参数表示Cookie值由HAProxy自动生成。 2. 使用基于源IP的方法进行会话保持:另一种常见的方法是基于源IP的会话保持HAProxy可以根据客户端的源IP地址将请求路由到同一台后端服务器,从而实现会话保持。这种方法适用于无状态的应用,其中会话信息不需要存储在后端服务器上。 以下是一个示例配置: ``` frontend my_frontend bind 0.0.0.0:80 mode http default_backend my_backend backend my_backend mode http balance source server backend1 192.168.0.1:8080 server backend2 192.168.0.2:8080 ``` 在上述配置中,"balance source"指示HAProxy使用源IP地址进行负载均衡,并实现会话保持。 无论使用哪种方法,都可以根据具体需求进行配置。请注意,会话保持可能会增加服务器的负载和复杂性,因此需要根据实际情况进行权衡和调优。 希望能对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

new不出对象来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值