Jak dopasować hosta do symboli wieloznacznych na listach ACL w HAproxy?
Mój haproxy.conf zawiera następujące wiersze:
acl valid_domains hdr(Host) -i mysite.com images.mysite.com docs.mysite.com admin.mysite.com
redirect location [url=http://mysite.com/invalid_domain]http://mysite.com/invalid_domain[/url] if !valid_domains
Jak dopasować dowolną subdomenę?
Próbowałem:
acl valid_domains hdr(Host) -i *.mysite.comi:
acl valid_domains hdr(Host) -i [a-z]+.mysite.com... Ale ani jedno, ani drugie nie działały.
dzięki
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
3 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
hdr_sub
http://cbonte.github.io/haprox ... r_sub
lepiej dla Twoich potrzeb. Używam hdr_end od jakiegoś czasu, ale napotkałem następujący problem:
żądania z portem 80 zwykle usuwają ten port, więc nagłówek hosta wygląda jak „example.com”, ale jeśli jawnie zażądałeś portu, na przykład example.com:8080, nagłówek pokaże port, a hdr_end nie przejdzie kontroli „example. com ”.
hdr_sub dokona dopasowania podciągów, co wydaje się bardziej odpowiednie dla ciebie (i dla mnie).
W każdej decyzji jest coś nieprzyjemnego, którego mi się nie podoba. Ocena wyników zależna od zamówienia.
na przykład (moje warunki wyglądają tak w interfejsie)
Żądanie portu 8080 będzie wyglądać następująco:
gdzie port 80 prawdopodobnie mógłby być taki
Anonimowy użytkownik
Potwierdzenie od:
to jest to, czego szukasz. Spróbuj tego:
Anonimowy użytkownik
Potwierdzenie od:
Pasujący koniec (
lub
) lub podciąg (
lub
) może mieć niezamierzone skutki uboczne dopasowania większej ilości, niż się spodziewasz. W wielu przypadkach może to nie mieć większego znaczenia, ponieważ nie ma ruchu z tych domen na serwer, ale to nie znaczy, że jest to technicznie poprawne rozwiązanie.
Odkryłem, że użycie wyrażenia regularnego jest najlepszym sposobem na jawne dopasowanie. Na przykład, jeśli chcesz tylko dopasować
nie pasuje
:
acl valid_domains hdr(host) -m reg -i ^[^\.]+\.example\.org$
Jeśli chcesz również obsłużyć (dowolne) niestandardowe porty, możesz to nieco rozszerzyć:
Nad
będzie pasować
:
i
będzie
nie
konformizm
: