Haproxy:他也是常用的负载均衡软件
nginx 支持四层转发,七层转发
haproxy 也是四层和七层转发
LVS的DR和NAT都是基于四层转发 都是基于流量的转发。
tun:四层和七层都有。
基于四层的转发:
1,lvs
2,nginx
3,haproxy
基于七层:
1,nginx
2,haproxy
haproxy:法国人开发的威力塔罗在2000年基于C语言的一个开源软件。可用支持一万以上的并发请求。
高性能的tcp和HTTP负载均衡 2.4 1.5.9
haproxy:主要用于高并发的web站点。工作原理和nginx一样。lvs都一样。
支持的功能:
1,tcp和http的反向代理
2,https的代理配置
3,可以针对http请求添加COOKie,转发后端服务器(添加缓存)
4,也支持主备服务器切换(keepaliveed)
5,基于端口的实时监控
6,压缩响应报文
haproxy的特点:
1,可靠性和稳定性非常好,可以和硬件(f5 BIG负载均衡的硬件设备)相媲美
2,同时2维护40000-50000个并发连接,单位时间内处理最大请求数20000个
3,支持8中的负载均衡算法。但是haproxy不带缓存功能,但是可以保持会话保持
4,也支持配置虚拟主机
haproxy的负载均衡算法:
1,roundrobin rr 轮询
2,static-rr wrr 加权轮询
3,leastconn 最小连接数
4,source 根据请求的源ip进行调度 sh
5,uri 根据请求地址进行调度 uri-hash
6,url param URL的参数实现调度
7,hdr(name) 表示根据http的请求头锁定每一次http的请求
8,rdp-cookie (name) 表示根据cookie的名称来锁定每一次请求
lvs nginx haproxy 的区别
1,lvs基于linux的内核实现负载均衡,性能最高,但是对系统硬件要求也比较高,haproxy和nginx基于第三方应用实现负载均衡,性能较低。
2,lvs可以实现ip+端口的四层负载均衡,无法实现http请求的转发。haproxy都可以实现四层和七层的转发。
3,lvs只能实现四层转发,检测状态,只能是单一的功能,(监测端口)haproxy可以实现端口,uri也可以
4,haproxy虽然功能强大,但是整体性能低于lvs nginx的性能比haproxy低 lvs----haproxy----nginx(bug多,稳定性也差)
5,nginx主要应用还是web服务或者缓存服务器,nginx的stream模块和upstream也可以支持集群,但是对节点的健康检测能力不行,没有lvs和haprooxy的监控性能好
haproxy:单节点部署,单实例运行。代理服务器出现故障,整个负载集群全部不可用。
haproxy是一个无状态的负载均衡器,每缓存,也没有会话保持,卡宴应用程序实现会话保持。状态不是保持在代理服务器。而是在后端服务器,或者依靠cookie
日志问题:haproxy的日志比较简单,只提供基本的请求和错误日志,需要更高级的日志。人工自定义。
实验:
1,搭建
2,实现七层,实现四层
3,如何实现haproxy日志的单独存放。
七层
创建软连接要使用绝对路径
加上权重
四层
实现haproxy日志的单独存放。