HAProxy設定のエラーはどこにありますか?

HAProxy設定のエラーはどこにありますか?

HAProxyの設定に問題があります。バックエンドサーバーが複数あり、ほとんどの場合、リダイレクトが正しく行われます。 Rocket.Chatで構成されたバックエンドを除くすべての場所で動作します。 HAProxyは、2つのベアメタルHyper-Vサーバーにインストールされている仮想マシンを変更するために、ドメインとサブドメインの両方へのトラフィックをリダイレクトしています。すべてが分割トンネリングを使用するOpenVPNを介して接続されます。すべてのドメインはサブドメインであり、Cloudflare DNSに正しく設定されています。問題は、リダイレクトが正しく機能しないことです。バックエンドはたくさんありますが、Rocket.Chatは1つだけ間違ったバックエンドに渡されます。

フロントエンドとバックエンドの設定:

    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'最後の位置にあります。

おすすめ記事