HaProxy 不平衡流量

HaProxy not ballancing traffic

我正在尝试使用 haProxy 进行简单的负载平衡。我的配置:

global
log /dev/log   local0
log 127.0.0.1   local1 notice
maxconn 200000
user haproxy
group haproxy
daemon

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    retries 3
    option redispatch
    maxconn 200000
    timeout connect     5000
    timeout client     50000
    timeout server     50000
frontend front
    bind *:80
    mode http
    default_backend back

backend back
    mode http
    balance roundrobin
    option httpclose
    option forwardfor
    server webserver01 127.0.0.1:5001 check
    server webserver02 127.0.0.1:5002 check
    server webserver03 127.0.0.1:5003 check
    server webserver04 127.0.0.1:5004 check
    server webserver05 127.0.0.1:5005 check
    server webserver06 127.0.0.1:5006 check

listen sts *:1936
    mode http
    stats enable
    stats uri /

我有六个 Flask 实例,每个实例都根据配置位于不同的端口。

在 Flask 中函数只有 time.sleep(5) 和 return.

当我在浏览器中打开 haproxy IP 时 - 它正在运行 - 我的循环策略正在运行。

但是当我用这个 IP 打开 3 个或更多页面时,我收到了奇怪的情况。我认为 haProxy 应该将流量重定向到我的一个 Flask 实例但是当我第一次在浏览器中打开这个 IP 并且我正在等待响应(在 Flask 中休眠)并打开第二页时,第二页将在第一页加载时加载+ 5 秒 (time.sleep)。和第三页类似-它会在第二页加载+ 5秒时加载。

我认为这是无效的,因为当 haProxy 将流量从一个请求重定向到 Flask 的一个实例并将第二个请求重定向到第二个实例时 - 这个请求应该彼此分开。我应该从每个请求中得到响应5秒。不在 5、10、15、20..

有人可以帮我吗?

此致, 马特

大多数浏览器限制同一台服务器的并行连接数,如果您是通过浏览器进行测试可能是这样。

可以在这个问题中找到更多详细信息: