HAProxy负载均衡应用原理及示例

HAProxy简介

1.1概述

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP的应用代理,支持虚拟主机,它是免费、快速并且可靠的一种负载均衡解决方案。适合处理高负载站点的七层数据请求。类似的代理服务可以屏蔽内部真实服务器,防止内部服务器遭受攻击。

 

1.2HAProxy优点

  • 可靠性和稳定性非常好,可以与硬件的F5相媲美
  • 最高可以同时维护40000--50000个并发连接,单位时间内处理的最大请求数为20000个,最大数据处理能力可达10Gbps
  • 支持多于8种负载均衡算法 ,同时也支持session保持
  • 支持虚拟主机功能
  • 从HAProxy 1.3版本后开始支持连接拒绝、全透明代理等功能
  • HAProxy拥有一个功能强大的服务器状态监控页面
  • HAProxy拥有功能强大的ACL支持

 

 

1.3配置文件构成

1)global部分

用于设置全局配置参数,属于进程级的配置,通常与操作系统配置相关

 

2) defaults部分

默认参数的配置部分。在些部分设置的参数,默认会自动引用到下面的frontend, backend和listen部分

 

3) frontend部分

用于设置接收用户请求的前端虚拟节点。frontend可以根据ACL规则直接指定要使用的后端backend

 

4) backend部分

用于设置集群后端服务集群的配置,也就是用来添加一组真实服务器,以处理前端用户的请求

 

5) listen部分

此部分是frontend和backend部分的结合体

 

 

 

 

HAProxy与X3集成方式

 

2.1HAProxyX3建议使用的负载均衡算法
source : 基于请求源IP的算法。对请求的源IP进行hash运算,然后将结果与后端服务器的权重总数想除后转发至某台匹配服务器。使同一IP客户端请求始终被转发到某特定的后端服务器。

 

2.2X3负载均衡常用的运行的方式

    a) 通过多台Syracuse进行负载均衡,实现按登陆的IP地址分流

    b) HAProxy分配一个地址,基本可以使所有的WEB服务器自动均衡。

HAProxy负载均衡应用原理及示例

HAProxy负载均衡应用原理及示例

配置文件实例-全局参数配置

 

  • 1)global部分

用于设置全局配置参数,属于进程级的配置,通常与操作系统配置相关

HAProxy负载均衡应用原理及示例

 

  • 2)defaults部分

默认参数的配置部分。在些部分设置的参数,默认会自动引用到下面的frontend, backend和listen部分HAProxy负载均衡应用原理及示例

 

  • 3) frontend部分

用于设置接收用户请求的前端虚拟节点。frontend可以根据ACL规则直接指定要使用的后端backend

 

4) backend部分

用于设置集群后端服务集群的配置,也就是用来添加一组真实服务器,以处理前端用户的请求

 

5) listen部分

此部分是frontend和backend部分的结合体

 

此处配置实例listen部分(包含frontend部分、backend部分),在此我们需要配置后台访问负载均衡的状态界面(监控组),访问的IP为127.0.0.1:801,包括登陆后台用户账号密码也在此配置

bind 0.0.0.0:1080 #默认的端口号,则访问的方式为“IP地址:1080”

配置文件实例-listen

HAProxy负载均衡应用原理及示例

案例分享

多台Syracuse装好之后,在此设置负载均衡

HAProxy负载均衡应用原理及示例

HAProxy负载均衡应用原理及示例

此时用配置好的HAProxy端点进行访问,我们可以发现服务器名称会自动负载均衡,完成的效果也是基本可以使所有的WEB服务器实现自动均衡

HAProxy负载均衡应用原理及示例