Aug 16, 2011
tom

Is it possible to use one haproxy process to load-balance more than one protocol/port?

Question

I’ve got haproxy to work for us. But right now there are two haproxy processes running. One for HTTP and the other for TCP (RTMP). I’ve tried to configure both proxies in one configuration file but haproxy only handles HTTP then.

My configuration file:

global
    log 127.0.0.1 local0
    log 127.0.0.1 local1 notice
    #daemon
    debug
    user haproxy
    group haproxy
    maxconn 4096defaults
    log global
    mode tcp
    option tcplog
    option dontlognull
    option redispatch
    retries 3
    maxconn 2000
    contimeout 10000
    clitimeout 50000
    srvtimeout 50000listen http :80
    mode tcp
    balance roundrobin    server h1 xxx.xxx.xxx.xxx:80 check
    server h2 xxx.xxx.xxx.xxx:80 checklisten rtmp :1935
   mode tcp
   balance roundrobin   server s1 xxx.xxx.xxx.xxx:1935 check
   server s2 xxx.xxx.xxx.xxx:1935 check

This doesn’t work for me. It only works when I split the configuration in two (one HTTP, one RTMP) and start two haproxy processes.

Answer

Ok, I have to answer my own question one more time. Yes, it is possible and my configuration file works. The problem was somewhere outside of HAProxy. Mea culpa.

Related posts:

  1. How to set up stats for HAProxy?
  2. HAProxy not passing SSL traffic in TCP mode (unknown protocol)
  3. Test capacity of HAProxy Load Balance solution on Amazon EC2 Micro-instance
  4. Blocking the port using Haproxy
  5. Other options to “balance source” in haproxy

Leave a comment