HAProxy: wiele nakładek, to samo powiązanie

10

Czy to jest możliwe / prawidłowe skonfigurowanie wielu nakładek, które łączą się z tym samym portem w 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

W tym przypadku użycia interfejs A musi powiązać z 80 i zakresem 2000-5000. W przypadku frontonu B nie chcę przypisywać go do wszystkich tych portów, tylko do 80.

Pomyślałem, że będzie wyglądać czysto, jeśli skonfiguruję go w ten sposób, zamiast tego użyję jednego frontendu i zagram z listami ACL, ale wygląda na to, że ta konfiguracja sprawia, że ​​HAProxy działa źle - czasami stosuje prawidłową regułę, a czasem nie.

Czy przed dołączeniem do tych frontendów jako jednego można używać wielu interfejsów, które łączą się z tymi samymi portami?

EDYCJA: BTW, używam HAProxy 1.5

JonDoe297
źródło

Odpowiedzi:

11

Nie, nie możesz tego zrobić i oczekiwać rozsądnego zachowania.

Żądania dotyczące portu 80 pojawią się na pozór losowo na jednym lub drugim froncie. Wynik takiej konfiguracji jest niezdefiniowany i chociaż nie jest to technicznie ważne, jest to praktycznie bezsensowna konfiguracja.

Wszystkie reguły obowiązujące na porcie 80 (lub dowolnym porcie) muszą być określone na pojedynczym frontend(lub pojedynczym listen), który jest powiązany z portem 80.

Michael - sqlbot
źródło