Sto usando haproxy per indirizzare il percorso per diverse applicazioni in esecuzione su un singolo server. Per uno dei domini in uso ci sono diverse dozzine di sottodomini che dovrebbero essere indirizzate a una delle poche applicazioni.
Attualmente, elenco tutti quei sottodomini in una riga separata. La mia configurazione di frontend è simile alla seguente:
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
C'è un modo per ottenere un risultato simile in forma più concisa? Tale elenco è efficace o sarebbe meglio passare a una regex ad un certo punto?
regex
, che in effetti è la tua risposta, credo. Si noti inoltre che è possibile utilizzarehdr_beg
anziché inhdr
modo da poter enumerare solo i sottodomini. Infine, dovrebbe essere possibile comprimere i tuoigamma00-06
ACL in soli due ACL, uno persub1
e uno persub2
, semplicemente usando lo stessoacl <title>
nella riga ACL.