如何在HAProxy中进行内部重定向?

问题描述 投票:0回答:1

我们的有状态服务将会话保留在操作记忆中。保存会话或从内存中获取会话大约需要一分钟,因此我们使用Redis来检测会话当前在哪个节点上加载以将请求锁定到其他节点。但是HAProxy有时会在节点之间切换会话。发生这种情况时,例如,如果会话在第一个节点的可操作内存上,而我们正在切换到第二个节点,则请求等待,第一个节点需要保存其状态,而第二个节点需要恢复它的状态。发生这种情况时,HAProxy可能认为该节点已关闭,因此HAProxy开始切换其他请求,并对其他请求进行相同的处理。我们增加了HAProxy等待超时,但没有帮助。我们如何使HAProxy将此请求以及所有即将到来的请求从特定会话切换到特定节点?

类似

303
Location: 192.168.1.2
redirect haproxy
1个回答
0
投票

好的,因此您的应用程序需要会话粘性。如果您已经具有用于会话处理的cookie,那么我建议在HAProxy中也使用cookie粘性。

简而言之,是此博客文章https://www.haproxy.com/blog/load-balancing-affinity-persistence-sticky-sessions-what-you-need-to-know/中的配置片段

backend bk_web
  balance roundrobin
  cookie SERVERID insert indirect nocache
  server s1 192.168.10.11:80 check cookie s1
  server s2 192.168.10.21:80 check cookie s2

@ Baptiste对设置HAproxy 1.5.8 How do I configure Cookie based stickiness?有相当详细的说明

[更多使用一台HAProxy服务器时,您可以通过本博客文章中描述的对等协议来同步状态。https://www.haproxy.com/blog/introduction-to-haproxy-stick-tables/

© www.soinside.com 2019 - 2024. All rights reserved.