!!!! 参考的比较多,自己想法少 大神总结的比较好 ====》http://www.ha97.com/5646.html
特性 | LVs | Nginx | Haproxy |
工作层 | 四层(传输层) | 七层(应用层) | 四层、七层 |
应用范围 | 基于tcp和udp传输的 协议都可以 | http应用相关,mail | http、tcp应用,如mysql |
流量及 网络依赖性 | 1.无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能不会收到大流量的影响。 2.LVS对网络依赖比较大 | 1.nginx工作在7层,主要依赖http应用做一些分流操作,当遇到大流量请求会影响本身性能。 2.Nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势之一。 | |
处理能力 | 没有流量消耗,决定了处理能力的强大,以及稳定性 | 一般 | 处于中间 |
支持算法 | 八种rr、wrr、lc、wlc、lblc基于局部性的最少链接、 lblcr、目标地址hash、源地址hash | rr、wrr、ip_hash(常用于session保持)、 sticky(淘宝session保持方法)、 fair(第三方,根据响应时间)、least_conn | ① roundrobin,表示简单的轮询; ② static-rr,表示根据权重; ③ leastconn,表示最少连接者先处理; ④ source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似,我们用其作为解决session问题的一种方法; ⑤ ri,表示根据请求的URI; ⑥ rl_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name; ⑦ hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求; ⑧ rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求 |
健康监测 | 结合keepalive、heartbeat等应用来监测,以及脚本监 测和漂移 | 支持、基本ping通就认为正常,但不支持URL检测 | 支持URL检测、端口监控 |
其他 | 不支持访问控制,以及重定向等 | 支持动静分离url重写,会话保持(ip_hash,sticky等) | 提供监控界面 |
Nginx的缺点是:
1、Nginx仅能支持http、https和Email协议,这样就在适用范围上面小些,这个是它的缺点。
2、对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测。不支持Session的直接保持,但能通过ip_hash来解决
LVS的缺点是:
1、软件本身不支持正则表达式处理,不能做动静分离;而现在许多网站在这方面都有较强的需求,这个是Nginx/HAProxy+Keepalived的优势所在。
2、如果是网站应用比较庞大的话,LVS/DR+Keepalived实施起来就比较复杂了,特别后面有Windows Server的机器的话,如果实施及配置还有维护过程就比较复杂了,相对而言,Nginx/HAProxy+Keepalived就简单多了。
HAProxy的特点是:
1、HAProxy也是支持虚拟主机的。
2、HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态。
3、HAProxy跟LVS类似,本身就只是一款负载均衡软件;单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
4、HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,大家可以用LVS+Keepalived对MySQL主从做负载均衡。
参考的比较多,自己想法少 大神总结的比较好 ====》http://www.ha97.com/5646.html