1,备选方案
- 硬件:F5,Array
- 软件:
- Nginx:
- 优点:
第七层之上,针对 Http做分流策略,比如: 域名,URL,目录结构, 正则规则 比HAProxy强大
网络稳定性依赖非常小,LVS对网络依赖比较大
安装比较 简单
高负载且 稳定
端口检查服务器内部的 故障
不仅仅是 负载均衡器/反向代理软件,也是强大的 Web应用服务器
中层反向代理使用
静态网页和 图片服务器,性能很强大
- 缺点:
仅支持Http,Https,Email协议
只支持后端服务器的 端口健康检测, 不支持URL
- LVS:使用 Linux内核集群实现一个高性能、高可用的 负载均衡服务器
- 优点:
抗负载能力强,工作在四层仅作 分发之用,负载软件 性能最强的
- 配置性比较低
第四层,应用范围广,如:数据库,在线聊天室
- 缺点:
不支持正则表达式处理
不能做 动静分离
复杂
- HAProxy
- 优点:
虚拟主机
Session保持,Cookie引导,支持URL检测后端服务器状态
TCP协议负载均衡转发
2,四层和七层负载均衡
- 四层: IP+端口的负载均衡。将一个Internet上合法注册的 IP地址 映射为 多个内部服务器的IP地址,对每次 TCP连接请求动态 使用其中一个内部IP地址,达到负载均衡的目的
第四层
不理解应用协议,如:HTTP/FTP/MySQL
LVS
- F5
- 七层:基于 URL等应用层信息的负载均衡。负载均衡控制应用层服务的内容,提供了一种对 访问流量的 高层控制方式,适合对 HTTP服务器群的应用。 第 七层负载均衡技术通过检查流经的HTTP报头,根据报头内的信息来执行负载均衡任务
第七层
- Nginx, HAProxy, MySQL Proxy
- 优点:
客户端的请求和 服务器的响应进行 任意意义上的修改,极大的 提升了应用 系统在网络层的 灵活性
HTTP400、500和600系列的 错误信息,因而能 透明地将连接请求重新定向到另一台服务器,避免应用层故障
数据类型(如判断数据包是 图像文件、压缩文件或 多媒体文件格式等),把数据流量 引向相应内容的服务器来 处理,增加系统性能
普通文本、 图象等 静态文档请求,还是 asp、cgi等的动态文档请求,把相应的请求引向 相应的服务器来处理,提高系统的性能及安全性
3,负载均衡算法
-轮循均衡(Round Robin)
-权重轮循均衡(Weighted Round Robin)
-随机均衡(Random)
-权重随机均衡(Weighted Random)
-响应速度均衡(Response Time)
-最少连接数均衡(Least Connection)
-处理能力均衡
-DNS响应均衡(Flash DNS)
4,Web负载均衡
- 详情请参照文章“【总结】Web负载均衡”
- HTTP重定向
- DNS负载均衡
- 反向代理负载均衡
- IP负载均衡
- 直接路由
- IP隧道
5,方案选择
说明:
中小型的Web应用,比如日PV小于1000万:Nginx
机器不少:DNS
大型网站或重要的服务,且服务器比较多时:LVS
最终方案选择:
Nginx: Http服务,负载均衡器,反向代理
Tomcat: 应用服务器
Memcache: Session共享