120秒后,HAProxy超时

时间:2018-07-16 19:22:53

标签: haproxy

我使用HAProxy制作了一个负载平衡器。我的连接最多可能需要1-4分钟,因此我将HAProxy中的默认超时值增加到300s,如下所示:

global
    daemon
    log 127.0.0.1 local0 notice
    maxconn 2000

defaults
    log     global
    mode    tcp
    option  tcplog
    option  dontlognull
    retries 3
    option redispatch
    timeout connect 300s
    timeout client  300s
    timeout server  300s
    option http-keep-alive

frontend LOAD_BALANCER_TIER
    bind *:80
    default_backend WEB_SERVER_TIER

backend WEB_SERVER_TIER
    balance leastconn
    mode tcp
    server segmentingApi01 some_private_ip:7331 check tcp-ut 300000
    server segmentingApi02 some_private_ip:7331 check tcp-ut 300000
    server segmentingApi03 some_private_ip:7331 check tcp-ut 300000

如您所见,我甚至在server选项中增加了TCP连接。但是,我对负载均衡器的请求恰好在120秒后超时。请注意,我认为问题出在负载平衡器,因为当我直接向服务器发送请求(some_private_ip:7331)时,它不会超时。

我想知道是否有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

首先,我不认为“ redispatch”和“ http-keep-alive”在tcp模式下有效-因为haproxy不能在tcp模式下处理应用程序(http)信息。

也许您应该尝试“选项tcpka”。 TCP确实可以保持活动状态,因此在没有数据交换时操作系统不会取消连接-我猜这是在发生这种情况。

您不应将连接超时设置为如此高的值,因为该超时是用于与服务器的初始连接。