xjpresley 2017-04-16 11:50 采纳率: 0%
浏览 506

负载均衡的问题 ~~~~~~~~~~

目前一个部署我了解的情况:最上面是F5(部署2台,主备模式,压力最大)、然后是WEB集群(每个应用均有自己的WEB AP DB集群,里面部署apche和haproxy,没有部署任何应用逻辑)、AP集群(应用部署在这里),最后是DB。
我想了解一下具体的解析过程:以下是我的猜测,请各位专家帮忙确认下是否正确:
客户端配置的服务地址是F5的IP,客户端访问不同的N个应用(每个应用IP不一样)都会先被转到F5,F5根据访问不同应用将请求转到该应用所属的WEB集群。
WEB里apache负责接收F5的请求,然后转给haproxy,haproxy负责会话保持,将请求发给AP服务器。
AP服务器接收情况进行业务逻辑处理,同时访问数据库完成数据库操作。

有2个问题:
1、apache和haproxy都部署在WEB,具体是技术上如何实现呢(我猜测是不是apache接到F5的请求,什么都不做直接传到本机haproxy的端口上)?这样做目的是什么?为什么WEB上面需要同时部署apache和Haproxy呢?我理解WEB只部署apache或者Haproxy就可以了吧,因为apache本身就可以做反向代理和负载均衡了把。甚至可以不要WEB,直接F5给AP做负载均衡和反向代理。
2、不同应用客户端配置服务器地址都不同,我了解到配置的是F5地址,但是我们只有1个F5,一个F5可以对应多个IP?F5根据IP不同转到后面不同的web?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-05 17:52
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    Apache和Haproxy确实可以在同一个Web服务器中运行。Apache本身是一个高性能的HTTP/HTTPS服务器,它可以在不修改源代码的情况下支持多种负载均衡器,包括Haproxy等。

    Apache的内部结构允许它支持多种协议和负载均衡策略。例如,它可以使用LVS (Load Balancing Via Software)或Nginx作为负载均衡器,而无需对Apache进行任何修改。

    在您的情况下,Apache可能只是作为一个简单的负载均衡器来处理流量,并且不需要执行任何额外的应用程序逻辑。这样做的好处是可以简化系统的部署和管理。

    关于第2点,如果您的F5只能提供单个IP地址,则您应该为每个应用程序分配单独的F5实例。这可以通过将应用程序名称添加到F5实例名中来实现。例如,您可以为"app1"创建一个名为"F5_app1"的F5实例,为"app2"创建一个名为"F5_app2"的F5实例等等。

    至于第1点,Apache和Haproxy确实可以分别监听特定的端口并接受来自客户端的请求。但是,它们通常不会共享相同的网络接口,而是通过不同的进程和线程来实现这一点。因此,Apache不会直接接收到来自F5的请求,而是由其他组件(如Haproxy)转发到Apache。

    如果您想要实现这种功能,那么您需要确保Apache能够连接到F5,并将其转发到相应的后端服务。这可能会涉及到一些编程工作,以确保Apache能够正确地与F5通信并获取其转发的目标。

    评论

报告相同问题?