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' 마지막 위치에 있습니다.