1,备选方案
- 硬件:F5,Array
- 软件:
- Nginx:
- 优点:
- 工作在网络
第七层之上,针对
Http做分流策略,比如:
域名,URL,目录结构,
正则规则
比HAProxy强大
- Nginx对
网络稳定性依赖非常小,LVS对网络依赖比较大
- Nginx
安装比较
简单
- 曾担
高负载且
稳定
- Nginx可以可以通过
端口检查服务器内部的
故障
- Nginx
不仅仅是
负载均衡器/反向代理软件,也是强大的
Web应用服务器
- 作为强大的
中层反向代理使用
- Nginx可以作为
静态网页和
图片服务器,性能很强大
- 缺点:
-
仅支持Http,Https,Email协议
-
只支持后端服务器的
端口健康检测,
不支持URL
- LVS:使用
Linux内核集群实现一个高性能、高可用的
负载均衡服务器
- 优点:
-
抗负载能力强,工作在四层仅作
分发之用,负载软件
性能最强的
- 配置性比较低
- 工作在
第四层,应用范围广,如:数据库,在线聊天室
- 缺点:
-
不支持正则表达式处理
-
不能做
动静分离
-
复杂
- HAProxy
- 优点:
- 支持
虚拟主机
- 支持
Session保持,Cookie引导,支持URL检测后端服务器状态
- 支持
TCP协议负载均衡转发
2,四层和七层负载均衡
- 四层:
IP+端口的负载均衡。将一个Internet上合法注册的
IP地址
映射为
多个内部服务器的IP地址,对每次 TCP连接请求动态
使用其中一个内部IP地址,达到负载均衡的目的
- OSI
第四层
-
不理解应用协议,如:HTTP/FTP/MySQL
-
LVS
-
F5
- 七层:基于
URL等应用层信息的负载均衡。负载均衡控制应用层服务的内容,提供了一种对
访问流量的
高层控制方式,适合对
HTTP服务器群的应用。
第
七层负载均衡技术通过检查流经的HTTP报头,根据报头内的信息来执行负载均衡任务
- OSI
第七层
-
Nginx,
HAProxy,
MySQL Proxy
-
优点:
-可以对
客户端的请求和
服务器的响应进行
任意意义上的修改,极大的
提升了应用
系统在网络层的
灵活性
-通过对HTTP报头的检查,可以检测出
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共享