在 haproxy 中“平衡源”的其他选项

Pri*_*cey 5 haproxy

我有 haproxy 监听多个端口并指向几个后端服务器。

理想情况下,我希望它能够将与同一端口的重复通信指向同一后端。

“平衡源”是行不通的,因为请求通常来自同一个源。

这是可行的吗?

我也对非 haproxy 解决方案持开放态度。使用的协议并不重要,但绝对不是 http。假设它的 ssh 并且你不应该出错。

编辑:澄清一下,假设我有 10 个“后端服务器”和 5 个“客户端”。每个后端服务器一次只能处理一个连接。我有比需要的更多的服务器,以防一些变得不可用。我将手动将每个客户端指向 haproxy 端口。我想确保每个客户端始终访问后端服务器(这很简单),但最好每次都访问相同的服务器,只要它可用即可。

Pri*_*cey 5

这是我解决问题的方法。

frontend name_of_frontend
    bind *:20000-20010
    default_backend     servers

backend servers
    balance roundrobin
    stick-table type integer size 1k expire 3h
    stick on dst_port
    server name ip-address check maxconn 1
    ...
    server name ip-address check maxconn 1
Run Code Online (Sandbox Code Playgroud)

威利在之前的回答评论中警告说,它“不能保证每个客户端都会前往不同的端口”。

就我的具体情况而言,我可以完全控制我的“客户”。我将它们指向代理服务器上不同端口的唯一原因是这样我可以将它们识别为不同的客户端。这绝对不是一个“公共”系统。