【问题标题】:How route a particular vhost on same server with multiple vhosts with haproxy如何使用 haproxy 在具有多个虚拟主机的同一服务器上路由特定虚拟主机
【发布时间】:2020-01-17 08:48:42
【问题描述】:

我们有:

2HaProxy 服务器,称为 Ha1、Ha2 3 个 Apache 服务器,称为 S1、S2、S3 2 个 Web 应用服务器,称为:App1、App2

所以,我需要将 2 个应用程序路由到同一个网络服务器

App1.com : Ha1 -> S1.App1.com
App1.com : Ha1 -> S2.App1.com
App1.com : Ha1 -> S3.App1.com

App2.com : Ha2 -> S1.App2.com
App2.com : Ha2 -> S2.App2.com
App2.com : Ha2 -> S3.App2.com

我正在使用 Keepalived,这工作正常,但路由仅从每个 Apache Web 服务器调用默认虚拟主机,例如:

S1 默认网络服务器是 S1.App1.com S2 默认网络服务器是 S2.App1.com S3 默认网络服务器是 S3.App1.com 因此,当我在等待 SX.App2.com 时,我调用 App2.com haproxy 路由到 SX.App1.com。如果服务器上的默认虚拟主机是 App2,那么现在不工作的是 App1.com

frontend APP2 App2.com:80
       acl APP2    hdr_end(host) -i App2.com
       use_backend APP2_1 if APP2
backend APP2_1
        option httpclose
        mode http
        option httplog
        balance static-rr
        option httpchk
        option forwardfor

                server S1App2 S1.App2.com:80 weight 5 maxconn 1000 check
                server S2App2 S2.App2.com:80 weight 5 maxconn 1000 check
                server S3App2 S3.App2.com:80 weight 5 maxconn 1000 check

我正在使用 HAProxy 版本 1.5.4,发布于 2014/09/02

如果我通过 wget 从 haproxy 服务器调用到 S1.App2.com 工作正常,那么 S1、S2、S3 上的虚拟主机也可以。

你知道我如何将呼叫路由到特定虚拟主机而不是默认虚拟主机吗?

谢谢大家 问候!

【问题讨论】:

    标签: apache routing backend haproxy vhosts


    【解决方案1】:

    最后我们解决了服务器中每个应用程序端口变化的这种情况,例如:

    httpd.conf我们唤醒端口8081、8082、8083,然后在virtualhost的每个应用程序中我们设置相应的端口作为默认端口

    <VirtualHost *:8081>
      DocumentRoot "/path/of/app1/public"
      ...
    </VirtualHost>
    
    <VirtualHost *:8082>
      DocumentRoot "/path/of/app2/public"
      ...
    </VirtualHost>
    
    
    <VirtualHost *:8083>
      DocumentRoot "/path/of/app3/public"
      ...
    </VirtualHost>
    

    然后,每个 HAproxy cfg

            server S1App2 S1.App2.com:8082 weight 5 maxconn 1000 check
            server S2App2 S2.App2.com:8082 weight 5 maxconn 1000 check
            server S3App2 S3.App2.com:8082 weight 5 maxconn 1000 check
    

    因此,我们可以在每个服务器的每个端口中默认从 haproxy 调用此模式。

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 2018-05-03
      • 2010-10-07
      • 1970-01-01
      • 2020-12-15
      • 2020-04-14
      • 2014-07-06
      • 2021-08-20
      • 2020-06-14
      相关资源
      最近更新 更多