目录
Nginx、Tomcat 服务器1:192.168.30.104
Nginx、Tomcat 服务器2:192.168.30.105
一、web集群调度器
web集群调度器分为软件和硬件
软件调度器
- LVS:性能最好,搭建复杂
- Nginx:性能较好,但集群节点健康检查功能呢不强,高并发性能较弱
- Haproxy:高并发性能好
常用硬件调度器
绿盟、F5
二、Haproxy 的 8 种调度算法:
roundrobin 轮询
static-rr 加权轮询
leastconn 最小连接
source 根据源地址哈希
uri 根据请求的URI地址哈希
url_param 根据请求的URL参数哈希
hdr(name) 根据请求头哈希
rdp-cookie(name) 根据cookie的key哈希
三、Haproxy 的会话保持
1)源地址hash
2)设置cookie
3)会话粘性表stick-table
四、Haproxy的特性
- 可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美;
- 最高可以同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个,最大处理能力可达10Git/s;
- 支持多达8种负载均衡算法;
- 支持Session会话保持,Cookie的引导;
- 支持通过获取指定的url来检测后端服务器的状态;
- 支持虚机主机功能,从而实现web负载均衡更加灵活;
- 支持连接拒绝、全透明代理等独特的功能;
- 拥有强大的ACL支持,用于访问控制;
- 支持TCP协议的负载均衡转发;(支持7层代理、实现动静分离)
- 支持客户端的keepalive功能,减少客户端与haproxy的多次三次握手导致资源浪费,让多个请求在一个tcp连接中完成
五、LVS Nginx Haproxy 的区别
负载均衡性能
[硬件负载均衡器F5 >] LVS 最好 > Haproxy 其次 > Nginx 弱于其它两种
支持的代理类型
- LVS基于Linux系统内核实现的软负载均衡,只支持4层代理的IP转发,不支持正则匹配
- Haproxy和Nginx基于应用程序实现的软负载均衡,都能支持4层和7层代理转发,支持正则匹配
支持的节点健康检查方式
- LVS可以配合keepalived实现支持对TCP端口和URL路径方式的健康检查
- Nginx默认情况下只支持被动健康检查,主动健康检查模块需要依赖第三方模块
- Haproxy支持TCP端口、URL路径、脚本等方式的健康检查
实例:
Haproxy服务器:192.168.30.203
Nginx、Tomcat 服务器1:192.168.30.104
Nginx、Tomcat 服务器2:192.168.30.105
客户端
Nginx、Tomcat 服务器1:192.168.30.104
Nginx、Tomcat 服务器2:192.168.30.105
Haproxy服务器:192.168.30.203
编译安装Haproxy
Haproxy服务器配置
客户端验证
刷新
因为设了cooki所以不能跳转