Com o modo TCP, o HAProxy não decodificará a solicitação HTTP, portanto, o acl
lines não fará nada e o frontend nunca poderá corresponder a um back-end, conforme mostrado pelos logs que você digitou: mytraffic/<NOSRV>
significa que não foi possível escolher um back-end ou servidor.
Você teria que dividir os três subdomínios em dois frontends diferentes, cada um com seus próprios IPs, já que todos eles estão se conectando na porta 443. Um para passagem, outro para terminação SSL e troca de conteúdo usando mode http
. A ressalva aqui é que, se você adicionar um quarto subdomínio (sub4.mydomain.com) que também requer passagem, você precisará de um terceiro frontend e IP.
Você também precisa criar registros CNAME ou A diferentes no DNS para que os subdomínios certos apontem para os IPs corretos.
Dada esta configuração de DNS:
10.10.10.100 A haproxy01-cs.mydomain.com
10.10.10.101 A haproxy01-pt1.mydomain.com
10.10.10.102 A haproxy01-pt2.mydomain.com
sub1.mydomain.com CNAME haproxy01-pt1.mydomain.com
sub2.mydomain.com CNAME haproxy01-cs.mydomain.com
sub3.mydomain.com CNAME haproxy01-cs.mydomain.com
sub4.mydomain.com CNAME haproxy01-pt2.mydomain.com
A configuração do HAproxy seria algo como isto:
#Application Setup
frontend ContentSwitching
bind 10.10.10.100:443
mode http
option httplog
acl host_sub2 hdr(host) -i sub2.mydomain.com
acl host_sub3 hdr(host) -i sub3.mydomain.com
use_backend sub2_nodes if host_sub2
use_backend sub3_nodes if host_sub3
frontend PassThrough1
bind 10.10.10.101:443
mode tcp
option tcplog
use_backend sub1_nodes
frontend PassThrough2
bind 10.10.10.102:443
mode tcp
option tcplog
use_backend sub4_nodes
backend sub1_nodes
mode tcp
balance roundrobin
stick-table type ip size 200k expire 30m
stick on src
server node1 10.10.10.101:8081 check
server node2 10.10.10.102:8081 check
backend sub2_nodes
mode http
balance roundrobin
stick-table type ip size 200k expire 30m
stick on src
server node1 10.10.10.101:8082 check
server node2 10.10.10.102:8082 check
backend sub3_nodes
mode http
balance roundrobin
stick-table type ip size 200k expire 30m
stick on src
server node1 10.10.10.101:8083 check
server node2 10.10.10.102:8083 check
backend sub4_nodes
mode tcp
balance roundrobin
stick-table type ip size 200k expire 30m
stick on src
server node1 10.10.10.101:8084 check
server node2 10.10.10.102:8084 check