提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
Haproxy 是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
一、HAproxy 概述
(一)、什么是Haproxy
HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。
(二)、Haproxy作用
`HAProxy特别适用于那些负载特大的web站点`,这些站点通常`又需要会话保持或七层处理`。HAProxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以`保护你的web服务器不被暴露到网络上`。
(三)、常见的Web集群调度器
目前常见的Web集群调度器分为软件和硬件:
软件通常使用开源的LVS、Haproxy、Nginx。
硬件一般有F5、绿盟和深信服等。
LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持集群功能,但是对集群节点健康检查功能不强,高并发没有Haproxy好
(四)、常用开源软件负载均衡器有:Nginx、LVS、Haproxy
1、LVS
1、`抗负载能力强`。抗负载能力强、性能高,能达到F5硬件的60%;`对内存和cpu资源消耗比较低`;
2、工作在`网络4层`,通过`vrrp`协议转发(仅作`分发之用`),具体的流量由linux内核处理,因此没有流量的产生;
3、`稳定性`、`可靠性好`,自身有`完美的热备方案`;(如:LVS+Keepalived)
4、应用范围比较广,可以对`所有应用做负载均衡`;
5、`不支持正则处理`,`不能做动静分离`;
6、支持负载均衡算法:`rr(轮循)`、`wrr(带权轮循)`、`lc(最小连接)`、`wlc(权重最小连接)`;
7、`配置复杂`,对`网络依赖比较大`,`稳定性很高`。
2、Nginx
1、工作在`网络的7层`之上,可以`针对http`应用做一些分流的策略,比如针对域名、目录结构;
2、Nginx对`网络的依赖比较小`,理论上能ping通就就能进行负载功能;
3、Nginx安装和配置比较`简单`,测试起来比较`方便`;
4、也可以`承担高的负载压力`且`稳定`,一般能支撑超过`1万次`的并发;
5、对`后端服务器的健康检查`,`只支持`通过`端口`来检测,`不支持`通过`url`来检测。
6、Nginx对请求的`异步处理`可以帮助节点服务器`减轻负载`;
7、Nginx`仅`能支持`http`、`https`和`Email协议`,这样就在`适用范围较小`。
8、`不支持Session`的`直接保持`,但能`通过ip_hash`来解决。对`Big request header的支持不是很好`,
9、支持负载均衡算法:`Round-robin(轮循)`、`Weight-round-robin(带权轮循)`、