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.