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