- 浏览: 2538663 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
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 access_log 完全关闭
2015-04-14 14:40 31814最近在配置本地nginx开 ... -
nginx 404会执行302跳转
2014-08-29 15:38 6016这个问题是应用中比较常见的一个问题了。尤其是对于静态文件, ... -
nginx配备中proxy_redirect的作用
2014-07-21 15:36 0http://www.docin.com/p-2925119 ... -
nginx配备中proxy_redirect的作用
2014-07-21 15:36 2632http://www.docin.com/p-292511 ... -
haproxy & LVS*(keepalived和heartbeat) & ng的比较
2012-11-29 10:04 7589http://network.51cto.com/art/ ... -
nginx+php-fmp 内存不释放
2012-06-20 11:01 5231由于服务器只有600M的内 ... -
架构分布施工图
2012-04-17 14:37 1983架构分布施工图 ... -
【汇总】PHP-FPM 配置优化
2012-02-25 11:41 17345http://www.linuxidc.com/Linux/2 ... -
伪静态
2011-11-29 17:34 1432--------------------Apache ... -
cakephp+phpcgi+memcache长连接问题
2011-05-31 18:07 2811问题:发现服务器在访问量不大的时候 php-cgi ... -
【汇总】nginx 报错汇总
2011-05-31 15:04 29607------------------- [warn] ... -
[SH][php-fpm自动拉起]从nginx的502错误出发谈锁机制在服务器自动监控脚本中的应用
2011-05-25 11:09 5697http://my.nuaa.edu.cn/thread-12 ... -
php-fpm中的进程管理
2011-05-18 16:17 13php-fpm目前主要又两个分支,分别对应于php-5.2.x ... -
nginx:fastcgi_cache
2011-05-18 16:15 3464http://apps.hi.baidu.com/share/ ... -
多级 Nginx 传递客户端 IP
2011-05-18 10:23 3580因为架构的需要采用多级 Nginx 反向代理,但是后端的程 ... -
Nginx无缝升级
2011-04-08 15:05 1258http://nginx.org/en/download.ht ... -
[shell]Nginx/Apache日志分析脚本
2011-03-21 12:47 8484http://junlee.blog.51cto.com/22 ... -
nginx后端apache access_log的外网ip问题
2011-03-17 15:53 2268=================== with-htt ... -
nginx爆零日漏洞 上传图片可入侵100万服务器
2011-03-10 19:44 2118国内顶级安全团队80sec于5.20日下午6点发布了一个 ... -
Nginx+keepalived双机互备
2010-10-19 21:06 9790主服务器IP:211.151.138.2 从服务IP ...
相关推荐
### Nginx负载均衡实现 #### 一、负载均衡概念及必要性 负载均衡是一种用于在网络环境中分散工作负载的技术,通常用于改善网络性能、提高可用性和最大化资源利用。当单台服务器难以应对高流量和并发请求时,负载...
在一台服务器的操作系统上,安装一个附加软件来实现负载均衡,如Nginx负载均衡(我们管理系统平台使用的也是这款均衡器)。它的优点是基于特定环境、配置简单、使用灵活、成本低廉,可以满足大部分
LVS & Nginx负载均衡优缺点对比
Nginx、LVS 及 HAProxy 是目前使用最广泛的三种负载均衡软件,每种软件都有其特点和优缺点。 Nginx 的优点: 1. 工作在网络的 7 层之上,可以针对 http 应用做一些分流的策略。 2. 对网络稳定性的依赖非常小,理论...
LVS和Nginx针对负责均衡功能的详细比较
随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司...我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。
- **负载均衡**:通过分配请求到多个服务器,实现高并发和故障转移,提高服务可用性。 - **静态资源服务器**:高效地处理静态内容(如图片、CSS、JavaScript),比其他应用服务器(如 Tomcat)更快。 - **反向...
【LVS负载均衡详解】 LVS,全称Linux Virtual Server,是Linux系统中的一种高性能的负载均衡技术,由章文嵩博士发起并维护,旨在提供一个高质量的虚拟服务器集群解决方案。LVS作为开源项目,其官方网站为...
总结,LVS通过在链路层实现负载均衡,提供了一种高效且灵活的服务器集群解决方案,与Nginx等应用层负载均衡器相比,其在处理大规模并发时具有显著优势。通过合理的配置和维护,LVS能够为业务的稳定运行提供强大的...
### 企业级Nginx负载均衡与Keepalived高可用实战 #### 一、Nginx负载均衡技术概述 在互联网环境下,随着访问量的不断增长,单一服务器往往难以满足需求,这时候就需要采用负载均衡技术来分担请求压力。Nginx作为一...
- 七层负载均衡如Nginx和HAproxy则适合需要更复杂路由策略的情况,如基于URL的路由或者需要进行SSL卸载等高级功能。 - 实际部署中应根据具体需求选择合适的负载均衡方案,同时考虑到性能、可维护性和成本等因素。
- **LVS负载均衡**:LVS作为核心负载均衡器,根据预设的策略,如轮询、最少连接、IP哈希等,将流量分配到各个服务器,确保负载的均衡分布。 3. **环境测试** 在部署完成后,需要对每个组件进行测试,确保它们能...
Keepalived和Nginx负责高可用性,LVS则作为核心的负载均衡器,实现对后端服务器的高效调度。通过深入学习这些材料,你可以掌握如何构建一个稳定、可扩展的分布式系统,以应对大规模用户访问带来的压力。 在实际应用...
【Nginx负载均衡安装配置手册】 Nginx是一个高性能的HTTP和反向代理服务器,同时也支持IMAP/POP3/SMTP服务。它的设计目的是为了处理高并发和静态内容的高效分发,由Igor Sysoev开发,最初应用于俄罗斯Rambler.ru...
### LVS、Nginx 和 HAProxy 三种负载均衡器优缺点分析 #### LVS 负载均衡器 **优点:** 1. **抗负载能力强:**LVS 工作在网络第四层,只负责分发请求而不产生额外流量,这使得它在负载均衡软件中的性能表现非常...
Nginx不仅可以用作独立的负载均衡器,还可以与LVS、Keepalived等工具配合,实现高可用性和更复杂的负载均衡场景。Keepalived提供健康检查和故障切换功能,与Nginx结合可以创建主备或负载分担的集群,确保服务的连续...
### L4+L7 负载均衡 Keepalived+LVS+nginx搭建nginx高可用集群 #### 一、概述 随着互联网应用的不断发展,如何高效地处理大规模并发请求成为了现代Web架构设计的重要议题之一。在众多解决方案中,构建一个高可用、...
LVS以其高效和低资源消耗在大型集群中表现出色,而Nginx则擅长内容驱动的负载均衡,适合作为前端的反向代理和缓存服务器。根据业务特点和资源状况,合理选择和组合这两种技术,可以构建出适应性强、性能优异的网络...
Nginx是一款高性能的反向代理服务器和负载均衡器,它可以根据配置的策略将请求分发到不同的后端服务器。在这个配置中,我们有两个Nginx服务器,一个作为主服务器(master),另一个作为从服务器(slave)。它们都...