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 域.dev' 在最后一个位置。

相关内容