假设我在反向代理/负载均衡器后面有 3 个 Web 服务器。目前我使用 Apache 2,但我不介意切换。
这些网络服务器并不相同。它们具有不同的本地数据集,这意味着不同类型的请求将在特定的网络服务器上得到更高效的处理。
我想在我的负载均衡器中插入一些自定义路由逻辑,它将在新的会话开始时为其选择一个 Web 服务器,然后将该会话绑定到该节点,直到它发生故障(粘性会话)。
例如:一个新用户进入 Web 应用程序,负载均衡器以某种方式运行我的自定义代码,此代码找出有关该用户的信息并得出结论,该用户应在节点 1 上处理。负载均衡器将该用户代理到节点 1 并将其粘贴到该节点。当另一个用户到来时,自定义路由逻辑建议使用节点 3,然后负载均衡器将该用户代理到该节点。
Apache 2 可以做到吗?如果不行,哪个代理/负载均衡器可以给我这个能力?
谢谢。
答案1
你可以考虑哈普罗西作为一个选项。您可以使用它来实现粘性会话并执行自定义 http L7 路由(标头、基于 url)
答案2
如果 haproxy 对你来说太复杂,请尝试磅。