Nowe posty

Autor Wątek: Błędne przekierowania w haproxy [CentOS 8]  (Przeczytany 218 razy)

Offline BrejSki

  • Nowy na forum
  • *
  • Wiadomości: 2
    • Zobacz profil
Błędne przekierowania w haproxy [CentOS 8]
« dnia: 2021-03-14, 18:57:17 »
Witam,
Niedawno zacząłem składać system na domowych serwerach, które przez OpenVPN (split tunelling) są połączone z VPSem z publicznym IP. Każda maszyna wirtualna na serwerze ma swój IP w VPNie. Kierowaniem ruchu zajmuje się haproxy i tu jest problem - wszystkie przekierowania po HTTP odbywają się poprawnie, subdomena/domena jest odpowiednio kierowana na wskazany w konfiguracji adres IP w VPNie, ale gdy używam innego protokołu (w tym przypadku jest to PPP), to przekierowanie idzie mimo konfiguracji na domenę główną - zamiast kierować się na chat.domain.com, kieruje się na domain.com...
Aplikacją uzywającą PPP jest Rocket.Chat i przekierowanie jest zrobione jako Port 443 do portu 3000, na którym natywnie działa Rocket.

Poniżej umieszczam fragment konfiguracji przedstawiający frontent i backend, który jest sprawny, za wyjątkiem "chat". Steldev to główna domena i próbuję zrozumieć, dlaczego chat (chat.domain.com) kieruje bezpośrednio na backend steldev (domain.com).
System operacyjny na serwerze to CentOS 8.3.

frontend https--in
        bind 0.0.0.0:443 ssl crt /etc/cert/
        mode http
        option httplog
        use_backend vm if { hdr_dom(host) -i vm.domain.com}     { dst_port 443 }
        use_backend vm if { hdr_dom(host) -i www.vm.domain.com }     { dst_port 443 }
        use_backend steldev if { hdr_dom(host) -i www.domain.com }     { dst_port 443 }
        use_backend steldev if { hdr_dom(host) -i domain.com }     { dst_port 443 }
        use_backend chat if { hdr_dom(host) -i chat.domain.com }     { dst_port 443 }
        use_backend adsb if { hdr_dom(host) -i adsb.domain.com }     { dst_port 443 }
        use_backend monitoring if { hdr_dom(host) -i monitoring.domain.com }     { dst_port 443 }
        use_backend chat if { hdr_dom(host) -i chat.domain.com }     { dst_port 443 }


backend vm
        balance leastconn
        option httpclose
        cookie JSESSIONID prefix
        server node1 10.11.12.2:80 cookie A check

backend monitoring
        balance leastconn
        option httpclose
        cookie JSESSIONID prefix
        server node1 10.11.12.7:80 cookie A check

backend steldev
        balance leastconn
        option httpclose
        cookie JSESSIONID prefix
        server node1 10.11.12.4:80 cookie A check

backend chat
        balance roundrobin
        server node1 10.11.12.5:3000    check

backend adsb
        balance leastconn
        option httpclose
        cookie JSESSIONID prefix
        server node1 10.11.12.3:88 cookie A check



Może widzi ktoś tu błąd? Zaznaczę, że dopiero uczę się pracy z haproxy. A może powinienem dodać dodatkowy frontend pod TCP albo coś? Pomysły mi się skończyły.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2701
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
Odp: Błędne przekierowania w haproxy [CentOS 8]
« Odpowiedź #1 dnia: 2021-03-14, 21:48:53 »
* Możesz rozwinąć użycie PPP, bo ostatnio to widziałem, jak się modemem analogowym łączyłem?
* Chat w konfigu występuje dwa razy (zduplikowny wpis)
* W niektórych programach (nie znam haproxy) "goła" domena (domain.com) działa jako catch-all, nie dopuszczając do głosu kolejnych reguł.
« Ostatnia zmiana: 2021-03-14, 21:51:40 wysłana przez Paweł Kraszewski »
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline BrejSki

  • Nowy na forum
  • *
  • Wiadomości: 2
    • Zobacz profil
Odp: Błędne przekierowania w haproxy [CentOS 8]
« Odpowiedź #2 dnia: 2021-03-15, 10:57:15 »
Nie jestem do końca pewien czy to PPP, zmylił mnie chyba nmap i port 3000, na którym słucha node. Poprawiłem konfig, chat pojawia się tylko raz teraz.
Haproxy dopuszcza inne reguły, ponieważ wszystkie, poza tą jedną działają poprawnie.