Nginx和lvs负载均衡的区别

简介:

LVS 4层(tcp)负载均衡,转发,DR模式为主要场景

优点:数据包返回可以不经过LB,因此高效,几十万并发

缺点:需要配置RS,所以部署复杂,功能单一。


Nginx 7层,负载均衡(反向代理),1.9以后支持4层

缺点:效率不太高,1-5万并发,数据包来去都要经过负载均衡器

优点:简单,方便,不需要配置RS,支持基于URL,扩展名等的调度功能,可以做web和cache


haproxy 同时支持4层和7层

缺点:效率不太高,1-5万并发,数据包来去都要经过负载均衡器。不为人熟知

优点:支持4层和7层。


二、nginx和lvs作对比的结果


1、nginx工作在网络的7层,所以它可以针对http应用本身来做分流策略,比如针对域名、目录结


构等,相比之下lvs并不具备这样的功能



2、nginx对网络的依赖较小,理论上只要ping得通,网页访问正常,nginx就能连得通,nginx同


时还能区分内外网,如果是同时拥有内外网的 节点,就相当于单机拥有了备份线路;lvs就比较依


赖于网络环境,目前来看服务器在同一网段内并且lvs使用direct方式分流,效果较能得到保证。


另 外注意,lvs需要向托管商至少申请多一个ip来做Visual IP,貌似是不能用本身的IP来做VIP


的。



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更多。

本文转自写个博客骗钱博客51CTO博客,原文链接http://blog.51cto.com/dadonggg/1955684如需转载请自行联系原作者

菜鸟东哥
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
负载均衡 网络协议 算法
一文读懂什么是Nginx?它能否实现IM的负载均衡?
Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡方案,从某种意义上来讲,Nginx几乎是低成本、高负载Web服务端代名词。 如此深入人心的Nginx,很多人也想当然的认为,在IM或消息推送等场景下是否也能使用Nginx来解决负载均衡问题? 另外,即时通讯网的论坛和QQ群里也经常有人问起,Nginx是否能支持TCP、UDP、WebSocket的负载
493 4
|
负载均衡 算法 安全
硬件负载均衡和软件负载均衡有什么区别?
硬件负载均衡和软件负载均衡有什么区别?
803 127
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
479 21
|
负载均衡 Java 应用服务中间件
Tomcat与Nginx的负载均衡与动静分离技巧
总的来说,Tomcat和Nginx各有各的优点,在负载均衡和动静分离这两方面它们都有很好的应用。灵活使用这两个工具能够让Web应用具有更好的扩展性和用户体验。
468 14
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
573 11
|
负载均衡 算法 应用服务中间件
Nginx长连接负载均衡详细说明以及案例
本文详细介绍了Nginx长连接负载均衡的配置与原理。长连接(Keepalive)允许客户端和服务器保持连接,减少建立和关闭连接的开销。Nginx支持多种负载均衡算法,如轮询、IP哈希等。通过在Nginx配置文件中使用`upstream`模块和`keepalive`指令,可以实现长连接负载均衡,从而提高系统的性能和响应速度。示例配置展示了如何设置后端服务器组、长连接数及HTTP/1.1协议,确保连接复用,降低延迟。
908 5
|
负载均衡 应用服务中间件 nginx
如何使用nginx实现负载均衡?
如何使用nginx实现负载均衡?
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
490 2
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
1121 3
|
负载均衡 应用服务中间件 nginx
解决nginx配置负载均衡时invalid host in upstream报错
在Windows环境下,配置Nginx 1.11.5进行负载均衡时遇到问题,服务无法启动。错误日志显示“invalid host in upstream”。检查发现上游服务器列表中,192.168.29.128的主机地址无效。负载均衡配置中,两个服务器地址前误加了"http://"。修正方法是删除上游服务器列表和proxy_pass中的"http://"。问题解决后,Nginx服务应能正常启动。
1354 4
解决nginx配置负载均衡时invalid host in upstream报错