HAProxy: frontend multipli, stesso binding


10

È possibile / corretto configurare più frontend che si collegano alla stessa porta su HAProxy?

frontend A
    bind :80
    bind :2000-5000
    acl rule_about_A
    use_backend server_A if rule_about_A

frontend B
    bind :80
    acl rule_about_B
    use_backend server_B if rule_about_B

In questo caso d'uso, il frontend A deve essere associato a 80 e all'intervallo 2000-5000. Per il frontend B, non voglio associarlo a tutte quelle porte, solo a 80.

Ho pensato che sarebbe stato perfetto se lo avessi configurato in quel modo, invece avrei usato un solo frontend e avrei giocato con gli ACL, ma sembra che quella configurazione stia facendo funzionare HAProxy in modo errato - a volte applica la regola corretta ea volte no.

Prima di unire quei front-end come uno singolo, è possibile utilizzare più front-end che si legano alle stesse porte?

EDIT: A proposito, sto usando HAProxy 1.5

Risposte:


11

No, non puoi farlo e aspettarti un comportamento sensato.

Le richieste per la porta 80 arriveranno apparentemente casualmente in un front-end o nell'altro. Il risultato di una tale configurazione non è definito, e sebbene non sia tecnicamente valido, è per tutti gli scopi pratici una configurazione senza senso.

Tutte le regole che si applicano alla porta 80 (o qualsiasi porta) devono essere specificate su un singolo frontend(o un singolo listen) associato alla porta 80.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.