`
zhengdl126
  • 浏览: 2538776 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

nginx负载均衡和lvs负载均衡的比较分析

阅读更多

lvs nginx 都可以用作多机负载的方案,它们各有优缺,在生产环境中需要好好分析实际情况并加以利用。

 

首先提醒,做技术切不可人云亦云,我云即你云;同时也不可太趋向保守,过于相信旧有方式而等别人来帮你做垫被测试。把所有即时听说到的好东西加以钻研,从而提高自己对技术的认知和水平,乃是一个好习惯。

 

下面来分析一下两者:

 

一、 lvs 的优势:

 

1 、抗负载能力强,因为 lvs 工作方式的逻辑是非常之简单,而且工作在网络 4 做请求分发之用,没有流量,所以在效率上基本不需要太过考虑。在我手里的 lvs ,仅仅出过一次问题:在并发最高的一小段时间内均衡器出现丢包现象,据分析为网络问题,即网卡或 linux2.4 内核的承载能力已到上限,内存和 cpu 方面基本无消耗。

 

2 、配置性低,这通常是一大劣势,但同时也是一大优势,因为没有太多可配置的选项 ,所以除了增减服务器,并不需要经常去触碰它,大大减少了人为出错的几率。

 

3 、工作稳定,因为其本身抗负载能力很强,所以稳定性高也是顺理成章,另外各种 lvs 都有完整的双机热备方案,所以一点不用担心均衡器本身会出什么问题,节点出现故障的话, lvs 会自动判别,所以系统整体是非常稳定的。

 

4 、无流量,上面已经有所提及了。 lvs 仅仅分发请求,而流量并不从它本身出去,所以可以利用它这点来做一些线路分流之用。没有流量同时也保住了均衡器的 IO 性能不会受到大流量的影响。

 

5 、基本上能支持所有应用,因为 lvs 工作在 4 层,所以它可以对几乎所有应用做负载均衡,包括 http 、数据库、聊天室等等。

 

另: lvs 也不是完全能判别节点故障的,譬如在 wlc 分配方式下,集群里有一个节点没有配置 VIP ,会使整个集群不能使用,这时使用 wrr 分配方式则会丢掉一台机。目前这个问题还在进一步测试中。所以,用 lvs 也得多多当心为妙。

 

二、 nginx lvs 作对比的结果

 

1 nginx 工作在网络的 7 所以它可以针对 http 应用本身来做分流策略,比如针对域名、目录结构等,相比之下 lvs 并不具备这样的功能,所以 nginx 单凭这点可利用的场合就远多于 lvs ;但 nginx 有用的这些功能使其可调整度要高于 lvs ,所以经常要去触碰触碰,由 lvs 的第 2 条优点看,触碰多了,人为出问题的几率也就会大。

 

2 nginx 对网络的依赖较小,理论上只要 ping 得通,网页访问正常, nginx 就能连得通 nginx 同时还能区分内外网 ,如果是同时拥有内外网的节点,就相当于单机拥有了备份线路; lvs 就比较依赖于网络环境,目前来看服务器在同一网段内并且 lvs 使用 direct 方式分流 ,效果较能得到保证。另外注意, lvs 需要向托管商至少申请多一个 ip 来做 Visual IP ,貌似是不能用本身的 IP 来做 VIP 的。要做好 LVS 管理员,确实得跟进学习很多有关网络通信方面的知识,就不再是一个 HTTP 那么简单了。

 

3 nginx 安装和配置比较简单,测试起来也很方便,因为它基本能把错误用日志打印出来。 lvs 的安装和配置、测试就要花比较长的时间了,因为同上所述, lvs 对网络依赖比较大,很多时候不能配置成功都是因为网络问题而不是配置问题 ,出了问题要解决也相应的会麻烦得多。

 

4 nginx 也同样能承受很高负载且稳定,但负载度和稳定度差 lvs 还有几个等级 nginx 处理所有流量所以受限于机器 IO 和配置;本身的 bug 也还是难以避免的; nginx 没有现成的双机热备方案,所以跑在单机上还是风险较大,单机上的事情全都很难说。

 

5 nginx 可以检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点。目前 lvs ldirectd 也能支持针对服务器内部的情况来监控,但 lvs 的原理使其不能重发请求。重发请求这点,譬如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障, nginx 会把上传切到另一台服务器重新处理,而 lvs 就直接断掉了,如果是上传一个很大的文件或者很重要的文件的话,用户可能会因此而恼火。

 

6 nginx 对请求的异步处理可以帮助节点服务器减轻负载,假如使用 apache 直接对外服务,那么出现很多的窄带链接时 apache 服务器将会占用大量内存而不能释放,使用多一个 nginx apache 代理的话,这些窄带链接会被 nginx 挡住, apache 上就不会堆积过多的请求,这样就减少了相当多的内存占用。这点使用 squid 也有相同的作用,即使 squid 本身配置为不缓存,对 apache 还是有很大帮助的。 lvs 没有这些功能,也就无法能比较。

 

7 nginx 能支持 http email email 的功能估计比较少人用), lvs 所支持的应用在这点上会比 nginx 更多。

 

在使用上,一般最前端所采取的策略应是 lvs ,也就是 DNS 的指向应为 lvs 均衡器, lvs 的优点令它非常适合做这个任务。 重要的 ip 地址,最好交由 lvs 托管,比如数据库的 ip webservice 服务器的 ip 等等,这些 ip 地址随着时间推移,使用面会越来越大,如果更换 ip 则故障会接踵而至。所以将这些重要 ip 交给 lvs 托管是最为稳妥的,这样做的唯一缺点是需要的 VIP 数量会比较多。

 

nginx 可作为 lvs 节点机器 使用,一是可以利用 nginx 的功能,二是可以利用 nginx 的性能。当然这一层面也可以直接使用 squid squid 的功能方面就比 nginx 弱不少了,性能上也有所逊色于 nginx

 

nginx 也可作为中层代理 使用,这一层面 nginx 基本上无对手,唯一可以撼动 nginx 的就只有 lighttpd 了,不过 lighttpd 目前还没有能做到 nginx 完全的功能,配置也不那么清晰易读。另外,中层代理的 IP 也是重要的,所以中层代理也拥有一个 VIP lvs 是最完美的方案了。

 

nginx 也可作为网页静态服务器 ,不过超出了本文讨论的范畴,简单提一下。

 

具体的应用还得具体分析,如果是比较小的网站(日 PV<1000 万),用 nginx 就完全可以了,如果机器也不少,可以用 DNS 轮询 lvs 所耗费的机器还是比较多的;大型网站或者重要的服务,机器不发愁的时候,要多多考虑利用 lvs

分享到:
评论

相关推荐

    nginx负载均衡实现

    ### Nginx负载均衡实现 #### 一、负载均衡概念及必要性 负载均衡是一种用于在网络环境中分散工作负载的技术,通常用于改善网络性能、提高可用性和最大化资源利用。当单台服务器难以应对高流量和并发请求时,负载...

    负载均衡器技术Nginx和F5的优缺点对比

     在一台服务器的操作系统上,安装一个附加软件来实现负载均衡,如Nginx负载均衡(我们管理系统平台使用的也是这款均衡器)。它的优点是基于特定环境、配置简单、使用灵活、成本低廉,可以满足大部分

    LVS & Nginx负载理论对比

    LVS & Nginx负载均衡优缺点对比

    Nginx、LVS及HAProxy负载均衡软件的优缺点详解.docx

    Nginx、LVS 及 HAProxy 是目前使用最广泛的三种负载均衡软件,每种软件都有其特点和优缺点。 Nginx 的优点: 1. 工作在网络的 7 层之上,可以针对 http 应用做一些分流的策略。 2. 对网络稳定性的依赖非常小,理论...

    LVS和Nginx负载比较

    LVS和Nginx针对负责均衡功能的详细比较

    LVS+Keepalived高可用负载均衡集群

    随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司...我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。

    Nginx入门到精通搭建高可用集群负载均衡

    - **负载均衡**:通过分配请求到多个服务器,实现高并发和故障转移,提高服务可用性。 - **静态资源服务器**:高效地处理静态内容(如图片、CSS、JavaScript),比其他应用服务器(如 Tomcat)更快。 - **反向...

    LVS负载均衡

    【LVS负载均衡详解】 LVS,全称Linux Virtual Server,是Linux系统中的一种高性能的负载均衡技术,由章文嵩博士发起并维护,旨在提供一个高质量的虚拟服务器集群解决方案。LVS作为开源项目,其官方网站为...

    LVS服务器集群搭建教程.zip在链路层实现负载均衡,这就是LVS和nginx的区别,一个是IP层转发,另一个是应用层转发,效率差距太大了

    总结,LVS通过在链路层实现负载均衡,提供了一种高效且灵活的服务器集群解决方案,与Nginx等应用层负载均衡器相比,其在处理大规模并发时具有显著优势。通过合理的配置和维护,LVS能够为业务的稳定运行提供强大的...

    企业级Nginx负载均衡与keepalived高可用实战

    ### 企业级Nginx负载均衡与Keepalived高可用实战 #### 一、Nginx负载均衡技术概述 在互联网环境下,随着访问量的不断增长,单一服务器往往难以满足需求,这时候就需要采用负载均衡技术来分担请求压力。Nginx作为一...

    lvs四层的负载均衡和七层负载均衡的区别

    - 七层负载均衡如Nginx和HAproxy则适合需要更复杂路由策略的情况,如基于URL的路由或者需要进行SSL卸载等高级功能。 - 实际部署中应根据具体需求选择合适的负载均衡方案,同时考虑到性能、可维护性和成本等因素。

    基于LVS负载均衡的高性能Web站点设计与实现

    - **LVS负载均衡**:LVS作为核心负载均衡器,根据预设的策略,如轮询、最少连接、IP哈希等,将流量分配到各个服务器,确保负载的均衡分布。 3. **环境测试** 在部署完成后,需要对每个组件进行测试,确保它们能...

    高并发负载均衡_LVS.rar

    Keepalived和Nginx负责高可用性,LVS则作为核心的负载均衡器,实现对后端服务器的高效调度。通过深入学习这些材料,你可以掌握如何构建一个稳定、可扩展的分布式系统,以应对大规模用户访问带来的压力。 在实际应用...

    NGINX负载均衡安装配置手册范本.doc

    【Nginx负载均衡安装配置手册】 Nginx是一个高性能的HTTP和反向代理服务器,同时也支持IMAP/POP3/SMTP服务。它的设计目的是为了处理高并发和静态内容的高效分发,由Igor Sysoev开发,最初应用于俄罗斯Rambler.ru...

    LVS Nginx HAProxy 三种负载均衡器优缺点

    ### LVS、Nginx 和 HAProxy 三种负载均衡器优缺点分析 #### LVS 负载均衡器 **优点:** 1. **抗负载能力强:**LVS 工作在网络第四层,只负责分发请求而不产生额外流量,这使得它在负载均衡软件中的性能表现非常...

    架构设计:负载均衡层设计方案(2)——Nginx安装1

    Nginx不仅可以用作独立的负载均衡器,还可以与LVS、Keepalived等工具配合,实现高可用性和更复杂的负载均衡场景。Keepalived提供健康检查和故障切换功能,与Nginx结合可以创建主备或负载分担的集群,确保服务的连续...

    L4+L7 负载均衡 Keepalived+LVS+nginx搭建nginx高可用集群

    ### L4+L7 负载均衡 Keepalived+LVS+nginx搭建nginx高可用集群 #### 一、概述 随着互联网应用的不断发展,如何高效地处理大规模并发请求成为了现代Web架构设计的重要议题之一。在众多解决方案中,构建一个高可用、...

    负载均衡集群技术 LVS

    LVS以其高效和低资源消耗在大型集群中表现出色,而Nginx则擅长内容驱动的负载均衡,适合作为前端的反向代理和缓存服务器。根据业务特点和资源状况,合理选择和组合这两种技术,可以构建出适应性强、性能优异的网络...

    keeplive+nginx负载均衡解决方案

    Nginx是一款高性能的反向代理服务器和负载均衡器,它可以根据配置的策略将请求分发到不同的后端服务器。在这个配置中,我们有两个Nginx服务器,一个作为主服务器(master),另一个作为从服务器(slave)。它们都...

Global site tag (gtag.js) - Google Analytics