Estou usando o haproxy para direcionar a rota para vários aplicativos em execução em um único servidor. Para um dos domínios em uso, existem várias dezenas de subdomínios que devem ser direcionados para um dos poucos aplicativos.
Atualmente, listo todos esses subdomínios em uma linha de separação. Minha configuração de front-end é assim:
frontend http-in
bind *:80
acl alpha hdr(host) -i alpha.com
acl beta hdr(host) -i beta.com
acl gamma00 hdr(host) -i apple.gamma.com
acl gamma01 hdr(host) -i banana.gamma.com
acl gamma02 hdr(host) -i cherry.gamma.com
acl gamma03 hdr(host) -i durian.gamma.com
acl gamma04 hdr(host) -i elderberry.gamma.com
acl gamma05 hdr(host) -i fig.gamma.com
acl gamma06 hdr(host) -i grapefruit.gamma.com
acl gamma hdr(host) -i gamma.com
use_backend a if alpha
use_backend b if beta
use_backend sub1 if gamma00
use_backend sub1 if gamma01
use_backend sub1 if gamma02
use_backend sub2 if gamma03
use_backend sub2 if gamma04
use_backend sub2 if gamma05
use_backend sub2 if gamma06
use_backend g if gamma
default_backend default
Existe uma maneira de obter um resultado semelhante de forma mais concisa? Essa listagem é eficaz ou seria melhor mudar para uma regex em algum momento?
regex
, que é de fato sua resposta, acredito. Observe também que você pode usar emhdr_beg
vez de,hdr
para enumerar apenas os subdomínios. Por fim, deve ser possível recolher suasgamma00-06
ACLs para apenas duas ACLs, uma parasub1
e outrasub2
, simplesmente usando o mesmoacl <title>
na linha da ACL.