It’s TCP layer 4 load balancing, so the HTTP hdr(host) won’t work.

Best regards,
Pieter Vogelaar

Van: Igor Cicimov <[email protected]>
Datum: donderdag 25 januari 2018 om 16:33
Aan: Pieter Vogelaar <[email protected]>
CC: "[email protected]" <[email protected]>
Onderwerp: Re: How can I map bindings to the correct backend?

Hi Pieter,

On Thu, Jan 25, 2018 at 3:15 AM, Pieter Vogelaar 
<[email protected]<mailto:[email protected]>> wrote:
I have the following configuration:


frontend default-tcp
  bind 192.168.52.12:5044<http://192.168.52.12:5044>
  bind 192.168.52.12:5555<http://192.168.52.12:5555>
  bind 192.168.52.12:5556<http://192.168.52.12:5556>
  bind 192.168.52.12:5672<http://192.168.52.12:5672>
  bind 192.168.52.13:5672<http://192.168.52.13:5672>
  mode tcp
  option tcplog
  use_backend %[dst_port,map(/etc/haproxy/tcp-bindings-to-backends.map,default)]


The map file (/etc/haproxy/tcp-bindings-to-backends.map) looks like:


192.168.52.12:5044<http://192.168.52.12:5044> logging-logstashmsg-acc
192.168.52.12:5555<http://192.168.52.12:5555> logging-logstashmsg-acc
192.168.52.12:5556<http://192.168.52.12:5556> logging-logstashmsg-acc
192.168.52.12:5672<http://192.168.52.12:5672> logging-rabbitmq-acc
192.168.52.13:5672<http://192.168.52.13:5672> stackstorm-rabbitmq-tst


I would like to route based on the IP address and port to the correct backend. 
At the moment I used the dst_port sample on the use_backend line. But that must 
be a concatenation of dst sample, “:” and dst_port sample.
It seems like a basic thing to do, but I just can’t figure out how to do this.


​How​ do you access the frontend? If via ip:port instead of dns than I guess 
the ip:port combo will already be present in the hdr(host).

Reply via email to