Не удалось загрузить запрос баланса нагрузки Socket.io через haproxy

Я пытаюсь сбалансировать запросы socket.io, используя HAProxy. Ниже приведена моя конфигурация:

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000

frontend all 0.0.0.0:8888
    mode http
    timeout client 120s

    option forwardfor
    # Fake connection:close, required in this setup.
    option http-server-close
    option http-pretend-keepalive

    acl is_socketio path_beg /socket.io

    use_backend socket-servers if is_socketio
    default_backend http-servers


backend http-servers
    balance roundrobin
    option httpclose
    option forwardfor

    # Roundrobin switching
    server node-1 172.14.2.25:8887 check
    server node-2 172.14.2.28:8887 check


backend socket-servers
    mode http
    timeout server  120s
    balance roundrobin
    # based on cookie set in header
    # haproxy will add the cookies for us
    option forwardfor
    cookie SERVERID insert indirect nocache
    server node1 172.14.2.25:8887 cookie node1 weight 1 maxconn 1024 check
    server node2 172.14.2.28:8887 cookie node2 weight 1 maxconn 1024 check

Эта конфигурация дает тайм-аут, когда я пытаюсь создать подключение к сокету.

Однако, если я удалю одну из двух последних строк [server node1 172.14.2.25:8887 cookie node1, вес 1, maxconn 1024 check или server node2 172.14.2.28:8887 cookie node2, вес 1 maxconn 1024 check], сокет подключается правильно.

Я не понимаю, что не так с конфигурацией. Любая помощь будет высоко оценена.

ТИА :)


person Kshitij Mittal    schedule 31.05.2016    source источник


Ответы (1)


В конфигурации внутренних сокет-серверов мне пришлось изменить циклический перебор баланса на источник баланса. Это сработало! :)

person Kshitij Mittal    schedule 02.06.2016