HAProxy 구성에서 오류는 어디에 있습니까?

HAProxy 구성에서 오류는 어디에 있습니까?

HAProxy 구성에 문제가 있습니다. 백엔드 서버가 여러 개 있고 대부분의 경우 리디렉션이 올바르게 수행됩니다. Rocket.Chat으로 구성된 백엔드를 제외한 모든 곳에서 작동합니다. HAProxy는 두 개의 베어 메탈 Hyper-V 서버에 설치된 가상 머신을 수정하기 위해 도메인과 하위 도메인 모두에 대한 트래픽을 리디렉션하고 있습니다. 모든 것이 분할 터널링을 사용하는 OpenVPN을 통해 연결됩니다. 모든 도메인은 하위 도메인이며 Cloudflare DNS에 올바르게 설정되어 있습니다. 문제는 리디렉션이 제대로 작동하지 않는다는 것입니다. 백엔드는 많지만 Rocket.Chat은 하나만 잘못된 백엔드로 전달됩니다.

프런트엔드 및 백엔드 구성:

    bind *:5000
    acl url_static       path_beg       -i /static /images /javascript /stylesheets
    acl url_static       path_end       -i .jpg .gif .png .css .js

    use_backend static          if url_static
    default_backend             app


#Frontend for traffic to VPN. 
frontend https--in
        bind 0.0.0.0:443 ssl crt /etc/cert/
        mode http
        option httplog
        use_backend cloud if { hdr_dom(host) -i cloud.domain.dev }     { dst_port 443 }
        use_backend cloud if { hdr_dom(host) -i www.cloud.domain.dev }     { dst_port 443 }
        use_backend steldev if { hdr_dom(host) -i www.domain.dev }     { dst_port 443 }
        use_backend steldev if { hdr_dom(host) -i domain.dev }     { dst_port 443 }
        use_backend chat if { hdr_dom(host) -i chatx.domain.dev }     { dst_port 443 }
        use_backend adsb if { hdr_dom(host) -i adsb.domain2.xyz }     { dst_port 443 }
        use_backend monitoring if { hdr_dom(host) -i monitoring.domain.dev }     { dst_port 443 }
        use_backend itsm if { hdr_dom(host) -i itsm.domain.dev }     { dst_port 443 }
        use_backend itsm if { hdr_dom(host) -i itsm.domain2.xyz }     { dst_port 443 }
        use_backend board if { hdr_dom(host) -i board.domain2.xyz }     { dst_port 443 }

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend static
    balance     roundrobin
    server      static 127.0.0.1:4331 check

---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
    balance     roundrobin
    server  app1 127.0.0.1:5001 check
    server  app2 127.0.0.1:5002 check
    server  app3 127.0.0.1:5003 check
    server  app4 127.0.0.1:5004 check

backend cloud
        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                    #That one is forwarding to steldev on 10.11.12.4:80, not chat.
        balance roundrobin
        server node1 10.11.12.5:3000 cookie A   check

backend itsm
        balance leastconn
        option httpclose
        cookie JSESSIONID prefix
        server node1 10.11.12.9:80      cookie A check

backend board
        balance leastconn
        option httpclose
        cookie JSESSIONID prefix
        server node1 10.11.12.10:80      cookie A check


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

나는 chatx.domain.dev에 어떤 ​​문제가 있는지 전혀 모릅니다(채팅백엔드) 구성.

이것이 중요한 경우: CentOS 8.3, 커널 4.18, HAProxy v1.8.23

내 구성에 문제가 있는 사람이 있습니까? 저는 HAProxy를 처음 접했습니다.

답변1

철사

use_backend steldev if { hdr_dom(host) -i domain.dev }     { dst_port 443 }

*.domain.dev를 나타냅니다.

그래서 이 줄은

use_backend chat if { hdr_dom(host) -i chatx.domain.dev }     { dst_port 443 }

이전 줄이 작동하기 때문에 작동하지 않습니다.

'와 라인을 비교-i domain.dev' 마지막 위치에 있습니다.

관련 정보