HA-Proxy

杨镇源 于 2024-04-25 发布 浏览量

一、HA-Proxy概述

HA-Proxy是一款高性能的负载均衡软件。因为其专注于负载均衡这一些事情,因此与Nginx比起来在负载均衡这件事情上做得更好,更专业。

二、基础介绍

官方网站

HA-Proxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HA-Proxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HA-Proxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。

HA-Proxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。

三、HA-Proxy的特点

HA-Proxy作为目前流行的负载均衡软件,必须有其出色的一面。下面介绍一下HA-Proxy相对LVS,Nginx等负载均衡软件的优点。

四、HA-Proxy的核心功能和关键特性

4.1 HA-Proxy的核心功能

策略 作用
roundrobin 表示简单的轮询
static-rr 表示根据权重
leastconn 表示最少连接者先处理
source 表示根据请求源IP
uri 表示根据请求的URI,做cdn需使用
url_param 表示根据请求的URl参数
hdr(name) 表示根据HTTP请求头来锁定每一次HTTP请求
rdp-cookie(name) 表示根据cookie(name)来锁定并哈希每一次TCP请求

从核心功能上看,HA-Proxy实现的功能类似于Nginx的L4、L7反向代理。

4.2 HA-Proxy关键特性

性能

稳定性

五、负载均衡的类型

5.1 无负载均衡

5.2 4层负载均衡

5.3 7层负载均衡

总结来说,4层负载均衡更注重性能和速度,适合于大量并发连接的场景;而7层负载均衡更注重灵活性和内容感知,适合于需要精细流量控制的场景。

六、HA-Proxy集群

尽管HA-Proxy非常稳定,但仍然无法规避操作系统故障、主机硬件故障、网络故障甚至断电带来的风险。所以必须对HA-Proxy实施高可用方案。可以利用Keepalived实现HA-Proxy热备方案。即两台主机上的两个HA-Proxy实例同时在线,其中权重较高的实例为MASTER,MASTER出现问题时,另一台实例自动接管所有流量。

在两台HA-Proxy的主机上分别运行着一个Keepalived实例,这两个Keepalived争抢同一个虚IP地址,两个HA-Proxy也尝试去绑定这同一个虚IP地址上的端口。显然,同时只能有一个Keepalived抢到这个虚IP,抢到了这个虚IP的Keepalived主机上的HA-Proxy便是当前的MASTER。Keepalived内部维护一个权重值,权重值最高的Keepalived实例能够抢到虚IP。同时Keepalived会定期check本主机上的HA-Proxy状态,状态OK时权重值增加。