浅谈lvs和nginx的一些优点和缺点
借鉴一些网上资料整理了简单的比较:
LVS的负载能力强,因为其工作方式逻辑非常简单,仅进行请求分发,而且工作在网络的第4层,没有流量,所以其效率不需要有过多的忧虑。
LVS基本能支持所有应用,因为工作在第4层,所以LVS可以对几乎所有应用进行负载均衡,包括Web、数据库等。
注意:LVS并不能完全判别节点故障,比如在WLC规则下,如果集群里有一个节点没有配置VIP,将会导致整个集群不能使用。还有一些其他问题,目前尚需进一步测试。
Nginx工作在网路第7层,所以可以对HTTP应用实施分流策略,比如域名、结构等。相比之下,LVS并不具备这样的功能,所以Nginx可使用的场合远多于LVS。并且Nginx对网络的依赖比较小,理论上只要Ping得通,网页访问正常就能连通。LVS比较依赖网络环境。只有使用DR模式且服务器在同一网段内分流,效果才能得到保证。
Nginx可以通过服务器处理网页返回的状态吗、超时等来检测服务器内部的故障,并会把返回错误的请求重新发送到另一个节点。目前LVS和LDirectd 也支持对服务器内部情况的监控,但不能重新发送请求。
比如用户正在上传一个文件,而处理该上传信息的节点刚好出现故障,则Nginx会把上传请求重新发送到另一台服务器,而LVS在这种情况下会直接断掉。Nginx还能支持HTTP和Email(Email功能很少有人使用),LVS所支持的应用在这个电商比Nginx更多。
Nginx同样能承受很高负载并且能稳定运行,由于处理流量受限于机器I/O等配置,所以负载能力相对较差。
Nginx 安装、配置及测试相对来说比较简单,因为有相应的错误日志进行提示。LVS的安装、配置及测试所花的时间比较长,因为LVS对网络以来比较大,很多时候有可能因为网络问题而配置不能成功,出现问题时,解决的难度也相对较大。Nginx本身没有现成的热备方案,所以在单机上运行风险较大,建议KeepAlived配合使用。另外,Nginx可以作为LVS的节点机器使用,充分利用Nginx的功能和性能。当然这种情况也可以直接使用Squid等其他具备分发功能的软件。
最新文章
- SharePoint 2013技巧分享系列 - 同步Exchange显示高清用户照片
- 【点滴积累,厚积薄发】windows schedule task中.exe程序的路径问题等问题总结
- 解决SQLSERVER在还原数据时出现的“FILESTREAM功能被禁用”问题
- Power Point已经检测到你的显卡可能无法正确配置
- [转]C语言单引号和双引号的区别
- 转载:/etc/resolv.conf的作用
- mysql的client和sever之间通信password的传输方式
- Spring Boot入门教程2-1、使用Spring Boot+MyBatis访问数据库(CURD)注解版
- 凸包问题——Graham Scan
- PHP无限极分类原理
- oracle 10g 11g 12c区别
- python学习之解决中英文混合输出的排版问题
- Springboot 设置session超时
- Alpha发布PSP Daily评价总结报告
- 【MVC - 参数原理】详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析]
- [bzoj1015](JSOI2008)星球大战 starwar(离线+并查集)
- 线程阶段性总结——APM,ThreadPool,Task,TaskScheduler ,CancellationTokenSource
- 关于接口 RandomAccess
- 洛谷 P2735 电网
- Win磁盘MBR转换为GUID
热门文章
- 增强for循环用法
- RabbitMQ系列教程之三:发布/订阅(Publish/Subscribe)
- VS2017专业版和企业版激活密钥
- .net core web api + Autofac + EFCore 个人实践
- 学习Java绝对要懂的,Java编程中最常用的几种排序算法!
- Codeforces 818B Permutation Game
- 最全的CSS浏览器兼容问题(转至http://68design.net/Web-Guide/HTMLCSS/37154-1.html)
- 使用Homebrew配置Java开发环境
- KBEngine WebConsole Guide
- 计算机浏览器存储技术cookie、sessionStorage、localStorage