如何使用 haproxy 进行 TCP(第 4 层)负载平衡,并且仍然进行循环或最少连接平衡?

如何使用 haproxy 进行 TCP(第 4 层)负载平衡,并且仍然进行循环或最少连接平衡?

我正在尝试使用 VirtualBox 上的 haproxy 进行负载平衡,只是为了在继续在 Digital Ocean 上进行设置之前查看一切是否正常工作。当我选择模式 http 时,我可以决定如何平衡请求,但是当我选择模式 tcp 时,来自同一台机器/客户端的所有请求都会发送到同一台服务器,并且不会交替。我希望它与 roundrobin 或 leastconn 交替。我想设置最简单的配置文件来实现这一点。这是我目前拥有的。但它并没有像我描述的那样工作。

global
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4096
    user        haproxy
    group       haproxy
    daemon

defaults
    mode tcp

frontend main *:80
    default_backend nodes

backend nodes
    balance roundrobin
    server goapp1 192.168.1.101:80 check
    server goapp2 192.168.1.102:80 check

我怎样才能实现这个目标?

答案1

禁用 Web 服务器上的 HTTP 连接重用。在 TCP 模式下,haproxy 不知道 HTTP 事务是否已在逻辑上结束。

相关内容