总结Lvs、nginx、Haproxy

!!!! 参考的比较多,自己想法少 大神总结的比较好 ====》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

原文地址:https://www.cnblogs.com/hlbb-zl/p/5890375.html