O HAProxy suporta nome de domínio para o mapeamento de back-end para roteamento baseado em caminho.
Atualmente, ele suporta mapas para vhost:
frontend xyz
<other_lines>
use_backend backend1 if { hdr(Host) -i myapp.domain1.com }
use_backend backend2 if { hdr(Host) -i myapp.domain2.com }
Pode ser reescrito usando mapas como:
frontend xyz
<other_lines>
use_backend %[req.hdr(host),lower,map_dom(/path/to/map,default)]
Com o conteúdo do arquivo de mapeamento como:
#domainname backendname
myapp.domain1.com backend1
myapp.domain2.com backend2
Mas, se o roteamento for baseado em caminhos, conforme mostrado no exemplo abaixo:
frontend xyz
acl host_server_myapp hdr(host) -i myapp.domain.com
acl path_path1 path_beg /path1
acl path_path2 path_beg /path2
use_backend backend1 if host_server_myapp path_path1
use_backend backend2 if host_server_myapp path_path2
É possível ter mapeamento para este uso? Usar base
em vez de hdr (host) pode fornecer o caminho inteiro, mas não terá a flexibilidade de domínios, pois base
é a comparação de strings. Existe outra maneira de converter isso em mapas haproxy.
Tags haproxy