Haproxy Sockjs Websocket负载均衡和RabbitMQ负载均衡在同一个配置中

时间:2017-09-08 21:08:49

标签: rabbitmq haproxy spring-websocket sockjs spring-rabbitmq

我正在寻找一个haproxy(HAProxy版本1.5.18)配置,它将允许websocket负载平衡以及RabbitMQ负载平衡。我尝试了很多选项,但似乎都没有用,下面是我的haproxy配置文件:

    global
        log         127.0.0.1 local2

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

        stats socket /var/lib/haproxy/stats

    defaults
        mode                    http
        log                     global
        option                  httplog
        option                  dontlognull
        option http-server-close
        option forwardfor       except 127.0.0.0/8
        option                  redispatch
        retries                 3
        timeout http-request    15s
        timeout queue           1m
        timeout connect         10s
        timeout client          1m
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check           10s
        maxconn                 3000
        timeout tunnel          3600s

    frontend http_web *:80
        mode http
        default_backend rgw

    backend rgw
        balance roundrobin
        server rgw1 173.36.22.49:8080 maxconn 10000 weight 10 cookie rgw1 check
        server rgw2 10.42.139.69:8080 maxconn 10000 weight 10 cookie rgw2 check

    listen stats :9000
        mode http
        stats enable
        stats realm Haproxy\ Statistics
        stats uri /haproxy_stats  # Stats URI
        stats auth websocketadmin:websocketadmin

    listen ampq
        bind *:61613
        mode tcp
        option clitcpka
        server rabbit1 10.42.6.112:61613 check inter 1s rise 3 fall 1
        server rabbit2 10.42.6.113:61613 check inter 1s rise 3 fall 1
        server rabbit3 10.42.6.114:61613 check inter 1s rise 3 fall 1
        server rabbit4 10.42.6.115:61613 check inter 1s rise 3 fall 1

Haproxy没有给出任何错误,它打印下面的消息,但它不起作用,我无法连接到websocket或连接到Rabbitmq。 但是一旦我删除“listen ampq”,一切都会正常运行。

    Sep  8 21:00:40 localhost haproxy[3184]: Proxy http_web started.
    Sep  8 21:00:40 localhost haproxy[3184]: Proxy rgw started.
    Sep  8 21:00:40 localhost haproxy[3184]: Proxy stats started.

1 个答案:

答案 0 :(得分:0)

问题是端口61613,已经被另一个进程占用了。因此,我不得不更改为新端口并将其添加到防火墙规则中,现在它正在运行。