概念:
Haproxy:他也是常用的负载均衡软件
Nginx:支持四层转发(只能转发数据),七层转发(转发数据和协议)
Haproxy:也可以四层和七层转发
LVS的DR和nat是基于四层还是七层转发?
答:四层转发
Tun:四层加七层转发
基于四层转发:
- LVS
- Nginx
- Haproxy
基于七层:
- Nginx
- Haproxy
Haproxy基于C语言开发的一个开源软件,可以支持一万以上的高并发发请求
高性能的tcp和HTTP负载均衡器2.4 1.5.9
Haproxy:主要用于高并发的web站点,工作原理和nginx一样,LVS一样
支持的功能:
- tcp和http的反向代理
- https的代理配置
- 可以针对http请求添加cookie,转发到后端服务器(添加缓存)
- 也支持主备服务器的切换(keepalived)
- 基于端口的实时监控
- 压缩响应报文
Haproxy的特点:
- 可靠性和稳定比较好,可以和硬件(f5 BIG)负载均衡的硬件设备相媲美
- 可以同时维护40000-50000个并发连接,单位时间内处理最大请求数20000个
- 支持8种负载均衡算法,但是haproxy不带缓存功能,但是可以支持会话保持
- 可以以支持配置虚拟主机
Haproxy的负载均衡算法:
- roundrobin rr 轮询
- Static-rr wrr 加权轮询
- Leastconn 最小连接数
- Source 根据请求的源IP进行调度sh
- Uri 根据请求地址进行调度
- Url param 根据URL的参数进行调度
- Hdr(name) 表示根据http的请求头锁定每一次http的请求
- Rdp-cookie(name)表示根据cookie的名称来锁定每一次的请求
LVS Nginx haproxy三者的区别
- LVS基于Linux内核来实现负载均衡,性能最高,但是对系统的硬件要求也比较高,haproxy和Nginx基于第三方应用实现负载均衡,性能较低,最低得出就是nginx
- LVS可以实现IP+端口的四层负载均衡,无法实现http请求的转发,haproxy和nginx都可以实现四层和七层的转发技术
- LVS只能实现四层转发,监测状态只能是单一的功能(监测端口)
- Haproxy可以实现端口,uri也可以
- Haproxy虽然功能强大,但是整体性能低于LVS Nginx的性能比haproxy低
优先级:LVS---haproxy----Nginx(bug多,稳定性也差)
- Nginx主要应用还是提供web服务或者缓存服务器,nginx的stream模块upstream也可以支持集群,但是对节点的健康检测能力不足,没有LVS和haproxy的监控能力好
Haproxy缺点:
- 单节点部署,单实例运行,代理服务器出现故障,整个负载集群全部不可用
- 是一个无状态的负载均衡器,没缓存,也没有会话保持,靠应用程序实现会话保持,状态不是保存在代理服务器,而在后端服务器,或者依靠cookie
- 日志问题:haproxy的日志比较简单,只能提供基本的请求日志错误,需要更高级的日志,人工自定义
实验:
1.实现七层

先配置代理服务器












创建软连接要用绝对路径,否则报错
验证实验效果:
为了实验效果,关闭keepalived,在Nginx配置文件中中注释掉

第二个实验:http四层转发
注释掉七层

模拟节点故障
恢复故障,依然运行正常
日志存放路径


写一个日志可检测脚本

Rsyslog.d系统存放日志目录
