在HAproxy中,我的websocket连接在50秒后关闭.如何改变它



我使用Haproxy与龙卷风的websocket。如果我直接连接到龙卷风,我的连接工作正常,但如果我使用HAproxy与以下配置,那么连接在50秒后关闭。我的Haproxy配置文件如下:

global
        daemon
        maxconn 4032
        pidfile /var/run/haproxy.pid
    defaults
        mode http
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms
        option  http-server-close
        maxconn 4032
    frontend http-in
        bind *:80
        acl is_websocket hdr_end(host) -i WebSocket
        use_backend servers if is_websocket
        default_backend servers
        option  redispatch
        option  http-server-close
        maxconn  2000
        contimeout  500000
        clitimeout  500000
        srvtimeout  500000
        contimeout  500000        
        timeout contimeout  500000 
        timeout connect  500000
    backend servers
        server server1 127.0.0.1:8886 maxconn 4032
现在通过使用上面的配置,我的websocket连接在50秒后自动丢失。我想做持久连接有没有办法让连接在HAproxy中持久呢

我更改了timeout connect 0ms, timeout client 0ms, timeout server 0ms在默认设置部分,然后我的连接是持久连接,因为如果我给值0,那么它将是无限连接超时值

您不应该这样做,因为这些选项也适用于通常的HTTP流量。将timeout connect/client/server设置为合适的值,并为websockets使用timeout tunnel

隧道超时适用于建立双向连接在客户端和服务器之间,连接在两者中都处于非活动状态的方向。此超时将同时取代客户端和服务器超时一次连接变成隧道。

(参见:http://cbonte.github.io/haproxy-dconv/configuration-1.5.html超时% 20隧道)

我找到了答案,

我在defaults部分更改了timeout connect 0ms, timeout client 0ms, timeout server 0ms,然后我的连接是持久连接,因为如果我给值0,那么它将是无限连接超时值。

我的最终工作配置如下,

global
        daemon
        maxconn 4032
        pidfile /var/run/haproxy.pid
    defaults
        mode http
        timeout connect 0ms
        timeout client 0ms
        timeout server 0ms
        option  http-server-close
        maxconn 4032
    frontend http-in
        bind *:80
        acl is_websocket hdr_end(host) -i WebSocket
        use_backend servers if is_websocket
        default_backend servers
        option  redispatch
        option  http-server-close
        maxconn  2000
        contimeout  500000
        clitimeout  500000
        srvtimeout  500000
        contimeout  500000        
        timeout contimeout  500000 
        timeout connect  500000
        timeout client  500000
    backend servers
        server server1 127.0.0.1:8886 maxconn 4032

相关内容

  • 没有找到相关文章

最新更新