Haproxy详解

 

目录

Haproxy详解

代理

缓存

负载均衡集群:

HAproxy两种代理模式:

HAProxy功能

Haproxy优点:

HAproxy缺点:

HAproxy组成


Haproxy详解

       HAProxy: 是法国人Willy Tarreau开发的一个开源软件,是一款应对客户端10000以上的同时连接的高性能的TCP和 HTTP负载均衡器。其功能是用来提供基于cookie的持久性, 基于内容的交换,过载保护的高级流量管制,自动故障切换 ,以正则表达式为基础的标题控制运行时间,基于Web的报表,高级日志记录以帮助排除故障的应用或网络及其他功能。

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

代理

  • 正向代理,反向代理
  • 代理服务器,可以提供缓存功能加速客户端访问,同时可以对缓存数据进行有效性检查
  • 内容路由:根据流量以及内容类型将请求转发至特定的服务器
  • 转码器:支持压缩功能,将数据以压缩形式发送给客户端

缓存

  • 减少冗余内容传输
  • 节省带宽,缓解网络瓶颈
  • 降低了对原始服务器的请求压力
  • 降低了传输延迟

负载均衡集群:

四层:

lvs, nginx(stream),haproxy(mode tcp)

七层:

http: nginx(http, ngx_http_upstream_module), haproxy(mode http), httpd, ats, perlbal, pound...

HAproxy两种代理模式:

  1. TCP 即4层 (大多用于邮件服务器、内部协议通信服务器等),在4层模式下,HAProxy仅在客户端和服务器之间转发双向流量。 它主要是通过分析IP层及TCP/UDP层的流量实现的基于IP加端口的负载均衡。 仅建立一次TCP连接。
  2.  HTTP 即7层模式,HAProxy会分析协议,并且能通过允许、拒绝、交换、增加、修改或删除请求 (request)或者回应(response)里指定内容来控制协议,七层负载均衡器可以根据报文内容,再配合负载均衡算法来选择后端服务器,因此也称为“内容交换器”。 负载均衡器与客户端及后端的服务器会分别建立一次TCP连接 七层负载均衡对负载均衡设备的要求更高,而七层负载均衡的处理能力也必然低于四层模式的负载均衡

HAProxy功能

  • HAProxy是TCP / HTTP反向代理服务器,尤其适合于高可用性环境
  • 可以针对HTTP请求添加cookie,进行路由后端服务器
  • 可平衡负载至后端服务器,并支持持久连接
  • 支持基于cookie进行调度
  • 支持所有主服务器故障切换至备用服务器
  • 支持专用端口实现监控服务
  • 支持不影响现有连接情况下停止接受新连接请求
  • 可以在双向添加,修改或删除HTTP报文首部
  • 支持基于pattern实现连接请求的访问控制
  • 通过特定的URI为授权用户提供详细的状态信息

Haproxy优点:

  1. HAProxy是支持虚拟主机的,可以工作在4、7层(支持多网段)
  2. HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态。
  3. HAProxy跟LVS类似,本身就只是一款负载均衡软件;单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
  4. HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡。
  5. HAProxy负载均衡策略非常多,HAProxy的负载均衡算法有8种
  • roundrobin,表示简单的轮询,这个是负载均衡基本都具备的;
  • static-rr,表示根据权重;
  • leastconn,表示最少连接者先处理;
  • source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似,我们用其作为解决session问题的一种方法;
  • ri,表示根据请求的URI;
  • rl_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name;
  • hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
  • rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。

HAproxy缺点:

  •  不支持POP/SMTP协议
  • 不支持SPDY协议
  •  不支持HTTP cache功能。现在不少开源的lb项目,都或多或少具备HTTP cache功能。
  • 重载配置的功能需要重启进程,虽然也是soft restart,但没有Nginx的reaload更为平滑和友好。
  •  多进程模式支持不够好

HAproxy组成

包名:haproxy

程序环境

主程序:/usr/sbin/haproxy

配置文件:/etc/haproxy/haproxy.cfg

配置文件

haproxy.cfg主要有两部分组成:global,和proxies配置段

global:全局配置段

进程及安全配置相关的参数

性能调整相关参数

Debug参数

proxies:代理配置段

defaults:为frontend, backend, listen提供默认配置

fronted:前端,相当于nginx, server {}

backend:后端,相当于nginx, upstream {}

listen:同时拥有前端和后端,适用于一对一环境

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值