Nginx、LVS、HAProxy 的区别和优缺点

Nginx、LVS、HAProxy 是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,通常会结合Keepalive做健康检查,实现故障转移的高可用功能。
1)在四层(tcp)实现负载均衡的软件:
lvs------>重量级
nginx------>轻量级,带缓存功能,正则表达式较灵活
haproxy------>模拟四层转发,较灵活

2)在七层(http)实现反向代理的软件:
haproxy------>天生技能,全面支持七层代理,会话保持,标记,路径转移;
nginx------>只在http协议和mail协议上功能比较好,性能与haproxy差不多;
apache------>功能较差<br>
总的来说,一般是lvs做4层负载;nginx做7层负载;haproxy比较灵活,4层和7层负载均衡都能做一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析:
1)如果是中小型的 Web 应用,比如日PV小于1000 万,用 Nginx 就完全可以了;
2)如果机器不少,可以用DNS轮询, LVS所耗费的机器还是比较多的;大型网站或重要的服务,且服务器比较多时,可以考虑用LVS。
还有一种是通过硬件来进行进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小
的网络服务来说暂时还没有需要使用;另外一种就是类似于 Nginx/LVS/HAProxy 的基于 Linux 的开源免费的负载均衡软件,这些都是通过软件级别来实现,所以费用非常低廉。目前关于网
站架构一般比较合理流行的架构方案: Web 前端采用Nginx/HAProxy+Keepalived 作负载均衡器;后端采用 MySQL 数据库一主多从和读写分离,采用 LVS+Keepalived 的架构。 当然要根据
项目具体需求制定方案。下面说说各自的特点和适用场合。
下面简单说下Nginx、LVS、HAProxy 负载均衡软件的优缺点:
一、Nginx的优点是:
1)工作在网络的7层之上,可以针对 http 应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比 HAProxy 更为强大和灵活,这也是它目前广泛流
行的主要原因之一, Nginx 单凭这点可利用的场合就远多于 LVS 了。
2) Nginx 对网络稳定性的依赖非常小,理论上能 ping 通就就能进行负载功能,这个也是它的优势之一;相反 LVS 对网络稳定性依赖比较大,这点本人深有体会;
3) Nginx 安装和配置比较简单,测试起来比较方便,它基本能把错误用日志打印出来。 LVS 的配置、测试就要花比较长的时间了, LVS 对网络依赖比较大。
4)可以承担高负载压力且稳定,在硬件不差的情况下一般能支撑几万次的并发量,负载度比 LVS 相对小些。
5) Nginx 可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测。
比如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障, Nginx 会把上传切到另一台服务器重新处 理,而LVS就直接断掉了,如果是上传一个很大的文件或者很重要的文
件的话,用户可能会因此而不满。
6)Nginx 不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的 Web 应用服务器。 LNMP 也是近几年非常流行的 web 架构,在高流量的环境中稳定性也很好。
7)Nginx 现在作为 Web 反向加速缓存越来越成熟了,速度比传统的 Squid 服务器更快,可以考虑用其作为反向代理加速器。
8)Nginx 可作为中层反向代理使用,这一层面 Nginx 基本上无对手,唯一可以对比 Nginx 的就只有 lighttpd 了,不过 lighttpd 目前还没有做到 Nginx 完全的功能,配置也不那么清晰易读,社区资料也远远没 Nginx 活跃。
9) Nginx 也可作为静态网页和图片服务器,这方面的性能也无对手。还有 Nginx社区非常活跃,第三方模块也很多。
Nginx 的缺点是:
1)Nginx 仅能支持 http、 https 和 Email 协议,这样就在适用范围上面小些,这个是它的缺点。
2)对后端服务器的健康检查,只支持通过端口来检测,不支持通过 url 来检测。不支持 Session 的直接保持,但能通过 ip_hash 来解决。
二、

  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青年夏日科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值