global
    debug
    stats socket /tmp/admin.sock
    stats timeout 30s

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

frontend localnodes
    bind *:8013
    mode http
    default_backend nodes

frontend localnodes_ssl
    bind *:8043
    mode tcp
    default_backend nodes_ssl

frontend flower
    bind *:5555
    mode http
    default_backend flower_nodes

frontend rabbitctl
    bind *:15672
    mode http
    default_backend rabbitctl_nodes

backend nodes
    mode http
    balance roundrobin
    option forwardfor
    option http-pretend-keepalive
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server awx_1 awx_1:8013 check
    server awx_2 awx_2:8013 check
    server awx_3 awx_3:8013 check

backend nodes_ssl
    mode tcp
    balance roundrobin
    server awx_1 awx_1:8043
    server awx_2 awx_2:8043
    server awx_3 awx_3:8043

backend flower_nodes
    mode http
    balance roundrobin
    option forwardfor
    option http-pretend-keepalive
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    #option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server awx_1 awx_1:5555
    server awx_2 awx_2:5555
    server awx_3 awx_3:5555

backend rabbitctl_nodes
    mode http
    balance roundrobin
    option forwardfor
    option http-pretend-keepalive
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    #option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server rabbitmq_1 rabbitmq_1:15672
    server rabbitmq_2 rabbitmq_2:15672
    server rabbitmq_3 rabbitmq_3:15672

listen stats
    bind *:1936
    stats enable
    stats uri /

