HAProxy 支持修改或插入 cookie 以提供带有cookie
参数的会话持久性。
在后端或侦听部分中,添加以下内容:
cookie COOKIENAME prefix
此示例将通过将服务器名称添加到名为 的 cookie 中来修改现有 cookie COOKIENAME
。您的客户会看到类似的东西,server1~someotherdata
但您的应用程序只会看到该someotherdata
部分。因此,您可以在现有 cookie 上使用它。此外,此方法允许您仅在该 cookie 存在时强制执行会话持久性,这意味着您仍然可以平衡站点的静态部分周围的人员,并且仅在需要时强制执行粘性,但将该 cookie 名称添加到会话中。
还要命名您的服务器,因此您的服务器行如下所示:
server server1 1.2.3.4 cookie server1
更多细节在HAProxy 配置指南中,看起来你也可以使用appsession
config 参数。
完成此操作后,您可以从列表中选择自己的平衡方法,我倾向于使用roundrobin
,但leastconn
一旦考虑到粘性会话,可能会给您带来更好的平衡。
更多来自文档,以便更容易找到参考部分:
cookie <name> [ rewrite | insert | prefix ] [ indirect ] [ nocache ]
[ postonly ] [ preserve ] [ domain <domain> ]*
[ maxidle <idle> ] [ maxlife <life> ]
Enable cookie-based persistence in a backend.
May be used in sections : defaults | frontend | listen | backend
yes | no | yes | yes