我想用HAProxy加载平衡web请求。问题是,我希望特定用户组总是访问同一台服务器。(这是一个多人系统,同一组中的用户需要在同一台服务器上)。只要具有相同组id的用户在同一台服务器上,用户就可以访问任何服务器。服务器甚至可以更改(例如,如果服务器崩溃),但是该组的所有用户都必须切换到新服务器。应用服务器将用cookie标识用户的分组。
作为一个具体的例子,假设我的应用程序有一个编号为1..10000的cookie GROUP_ID。GROUP_ID=1可能有3个不同的用户,GROUP_ID=2有不同的3个用户,让我们假设我在服务器上设置了负载平衡: app1、app2、app3。
我想看到的是类似这样的东西:
等。
如果服务器app1变成无响应,那么我希望看到app1用户在app2和app3之间重新分布。(如果所有的团体都被重组,那就没问题了)。来自特定组的所有用户仍应位于公共服务器上。
显然,对站点的初始请求不会有cookie,但是一旦用户进行身份验证,就会分配cookie。
HAProxy是否支持这种自定义负载平衡?
发布于 2013-03-04 23:57:49
1)设置一个HAPROXY前端,包括:
2)将服务器(在后端)设置为(注意:可以删除check部分):
server APP01 10.0.0.5:80 cookie GID3 check inter 5000 rise 2 fall 3 maxconn 2048
server APP02 10.0.0.6:80 cookie GID4 check inter 5000 rise 2 fall 3 maxconn 2048
(...)作为进一步的参考,HAPROXY的文档是相当明确的(http://haproxy.1wt.eu/download/1.4/doc/configuration.txt)
https://serverfault.com/questions/482781
复制相似问题