使用Haproxy搭建Web群集


 

 

 

 

 

简介

---------------------------------------------------------------------------------------------------------

Haproxy是一个使用C语言编写的自由及开放源代码软件。

Haproxy是开源,免费,快速并且可靠的一种解决方案,他可以运行在大部分主流的Linux服务器上。

Haproxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。

Haproxy是能够提供高可用性、负载均衡以及基于L4(TCP)和L7 ( HTTP )的应用的代理。

----------------------------------------------------------------------------------------------------------

 

Haproxy优点

--------------------------------------------------------------------------------------------------------

 

1)可靠性和稳定性高

2)最高可以同时维护40000-- 50000个并发连接,单位时间内处理的最大请求数为20000个,最大数据处理能力可达10Gbps

3)支持多于8种负载均衡算法,同时也支持session(会话)保持

4)支持虚拟主机功能

5)从HAProxy 1.3版本后开始支持连接拒绝、全透明代理等功能

6) HAProxy拥有一个功能强大的服务器状态监控页面

7) HAProxy拥有功能强大的ACL支持

---------------------------------------------------------------------------------------------------------

 

影响Haproxy负载均衡的性能因素

---------------------------------------------------------------------------------------------------------

 

1 )、Session会话率:即每秒产生的会话数,这个因素取决于客户端的访问量,因此,访问量越大, Session会话率越大,负载均衡压力就越大。

 

2 )、Session concurrency并发会话数:即并发会话数越多  ,服务器处理的会话时间就越长,客户端表现出来的访问就会越慢。

3)、Daterate数据速率:它以MB/S或者Mbps来衡量,其数据量越大,并发会话数就会增加,并发会话数越多、数据速率越高,所要求使用的内存就越多。

因此,这三个因素,在高并发负载均衡中,可能会成为HAProxy的性能瓶颈。

-----------------------------------------------------------------------------------------------------------------------------

 

Haproxy负载均衡器的核心功能

--------------------------------------------------------------------------------------------------------------------------

1、Haproxy 的核心功能

1)、负载均衡: HAProxy的负载均衡有两种模式,分别为L4(TCP)和L7 ( HTTP ) ,这两种负载均衡均支持

以下最常用的负载均衡调度算法:
static-rr :静态轮询算法
roundrobin :动态轮询算法
rr :轮询算法
Ic :最少连接
IP Hash : IP地址散列(包括源地址和目标地址)
URL_ PARAM Hash :对用户请求的uri仅paraims部分中的参数的值作hash计算
URL_ PARAM Hash :对用户请求的uri仅params部分中的参数的值作hash计算
HTTP HEADER Hash :对用户请求的uri的http头部信息作hash计算

 

2)、健康检查:其实健康检查可以算作HAProxy的一种工作模式,不过这种工作模式,现在几乎很少用到,所以,健康检查, -般是做为L4(TCP)和L7 ( HTTP )的状态检查。

 

3)、会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持。

4)、解析SSL : HAProxy可以解析HTTPS协议,并且能够将客户端HTTPS请求解密为HTTP后向后端传输。

 

5 )、HTTP靖求重写和重定向: HAProxy可以使用正則表込式將HTTP靖求重写和重定向。

6)、监控与统计: HAProxy提供了基于WEB界面的
统计信息页面  在该页面能够展示应用服务器的健康状态和数据流量。做为运维,我们可以基于此页面来开发监控程序以监控HAProxy的状态。

---------------------------------------------------------------------------------------------------

 

==============================================

一   HAProxy配置文件详解

1 global: (全局配置主要用于设定义全局参数 ,属于进程级的配置,通常和操作系统配置有关)

2 default : (配置默认参数,这些参数可以被用到frontendbackend , Listen组件)
在此部分中设置的参数值,默认会自动引用到下面的
frontend、backend、 listen部分中 ,因引,某些参数属于公用的配置,只需要在defaults部分添加一次即可。而如果frontend、backend、 listen部分也配置 了与defaults部分-样的参数, Defaults部分参数对应的值自动被覆盖。

3 frontend : (接收请求的前端虚拟节点,Frontend可以更加规则直接指定具体使用后端的backend)

 

frontend是在haproxy 1 3版本以后才引入的一个组件,同时引入的还有backend组件。 通过引入这些组件,在很大程度上简化了haproxy配置文件的复杂性。forntend可以根据ACL规则直接指定要使用的后端backend.

4 backend : (后端服务集群的配置,真实服务器,一个;Backend对应-个或者多个实体服务器)

在HAProxy1.3版本之前, HAProxy的所有配置选项都在这个部分中设置。为了保持兼容性, haproxy新的版本依然保留了listeh组件配置试。两种配置方式任选一-中。

 

5 Listen : (Fronted和backend的组合体)比如haproxy实例状态监控部分配置)

代理配置段:

 

1. Backend:后端服务器组的定义
2. Frontend:定义面向客户的监听的地址和端口,以及关联的后端的服务器组
3. Listen:组合的方式直接定义frontend及相关的backend
4. Defaults:默认的配置

 

二   关于haproxy时间格式配置说明

一些包含了值的参数表示时间,如超时时长。这些值一般以毫秒为单位,但也可以使用其它的时间单位后缀。

 us: 微秒(microseconds),即1/1000000秒;
 ms: 毫秒(milliseconds),即1/1000秒;
 s: 秒(seconds);
 m: 分钟(minutes);
 h:小时(hours);
 d: 天(days);

 

 

 

三、haproxy global配置说明

通常主要定义全局配置主要用于设定义全局参数,属于进程级的配置,通常和操作系统配置有关

global

log 127.0.0.1 local3   #定义haproxy日志

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值