LVS、Nginx 及 HAProxy 的工作原理.docx

上传人:王** 文档编号:1398187 上传时间:2024-07-06 格式:DOCX 页数:9 大小:140.30KB
下载 相关 举报
LVS、Nginx 及 HAProxy 的工作原理.docx_第1页
第1页 / 共9页
LVS、Nginx 及 HAProxy 的工作原理.docx_第2页
第2页 / 共9页
LVS、Nginx 及 HAProxy 的工作原理.docx_第3页
第3页 / 共9页
LVS、Nginx 及 HAProxy 的工作原理.docx_第4页
第4页 / 共9页
LVS、Nginx 及 HAProxy 的工作原理.docx_第5页
第5页 / 共9页
LVS、Nginx 及 HAProxy 的工作原理.docx_第6页
第6页 / 共9页
LVS、Nginx 及 HAProxy 的工作原理.docx_第7页
第7页 / 共9页
LVS、Nginx 及 HAProxy 的工作原理.docx_第8页
第8页 / 共9页
LVS、Nginx 及 HAProxy 的工作原理.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
资源描述

《LVS、Nginx 及 HAProxy 的工作原理.docx》由会员分享,可在线阅读,更多相关《LVS、Nginx 及 HAProxy 的工作原理.docx(9页珍藏版)》请在优知文库上搜索。

1、当前大多数的互联网系统都使用了服务器集群技术,集群是将相同服务部著在多台服务器上构成一个集W整体对外提供服芬,这些集群可以是Web应用服务器集群,也可以是数据库舱务器集群,还可以是分布式?存服务器集群等等。1.oadBalanceApplicationServer密CacheDataBase在实际应用中在Ueb服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Ueb服务胖流量的入口,挑选最合适的一台Heb服务器,将客户端的请求牯发给它处理,实现客户端到直实服务洋的透明转发,最近几年很火的云计算以及分布式架构,本质上也是将后端服务器作为计算资源、存谛资源,由某台管理服务器封装成一

2、个服务对外提供,客户端不需要关心真正提供服务的是哪台机器.在它看来,就好像它面对的是一台拥有近乎无限能力的服务器,而本质上,观正提供服务的,是后端的集群。1.YS、Nginx,HAProxy是目前使用最广泛的三种软件负我均衡软件,殷时负栽均衡的使用是随者网站规模的提升根据不同的阶段来使用不同的技术。具体的应用药求还将具体分析,如果是中小型的Ieb应用,比如日PV小于Kx)O万.用Xginx就完全可以了:如果机器不少,可以用DNS轮i,1.VS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用1.VS.目前关于网站架构一般比较合理流行的架构方案:Web前端采用Nginx

3、HAProy+Keepalived作负载均衡器;后端采用MySQ1.数据库一主多从和读写分离,采用1.VS+Keepalived的架构.1.VS1.VS是1.inuxVirtualServer的简称,也就是1.inux虚拟服务器。现在1.VS已经是l.inux标准内核的一部分,从1.inUX2.4内核以后,已经完全内比了1.VS的各个功能模块,无需给内核打任何补丁,可以直接使用1.VS提供的各种功能。1.YS自从1998年开始发展到现在已经是一个比较成熟的技术项目了.1 1.VS的体系结构I.VS架设的服务器集群系统有三个都分组成:(D最前端的负载均衡层fH1.oadBalancer表示.(2

4、)中间的服务器集群层,用ServerArray表示。(3)最底端的数据共享存储层,用SharedStorage表示,2 1.VS负载均衡机制1.VS不像IUProxy等七层软负载面向的是IHTP包,所以七层负或可以做的UR1.解析等工作1.VS无法完成.1.VS是四层负载均衡,也就是说建立在OSl模里的第四层一传输层之上,传输层上有我们熟悉的TCP/UDP.1.VS支持TCP/UDP的负载均衡.因为1.VS是四层倒裁均衡,因此它相时于其它高层负载均衡的解决办法,比如DNS域名轮流解析、应用层负载的谓度、客户端的调度等,它的效率是非常高的.所谓四层负我均衡,也就是主要通过报文中的目标地址和端口。

5、七层负栽均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容。OSIModel1.ayerOataunitFUnCoOn氏Examples7.Hgh-tovAPt.IndUdngrMOurccIhaHnq.WnCrtOftteaocoM.OreclcxySOfMCMMai.InterneExptorer.AppIcatKX)ndvirtue!tfn*fiAq4ox.GooglQChromoHost6.PreeemationDataTrMWAtcn01(MMMW1WMCMnpCMon.KldrCtaractorGnOodBCaUlcxnpr053crandencrypwnJec

6、ryoonASCII.EBCDIC.JPEGIayerS&SosskxiManagingCOmnKnCabonsewcne.e.continuousecanedMtorm100nmRPC.PAP.HTTP.FTP.theIcrmomu*p*bAC*mQ.11xrt112andv三ttccontrolIPv4.IPv6.IPsec.AppIoTaIk.ICMPMedialayers2DataRnkBitFratrtewtbtw04ntwonodMconnoctodaPhy*3PPP1IEEE80221.2TP1.PhyscalNtTrmerriMiondrecp(sofmwMMmamtoverp

7、bytacMmkmOS1.USB1.VS的转发主要通过修改IP地址(NAT模式,分为源地址修改SNAT和目标地址修改DNAT)、修改目标MAC(DR模式)来实现。3 NAT模式:网络地址转换NAT(NetworkAddressTranslation)一种外网和内网地址映射的技术,NAT模式下,网络数据报的进出都要经过1.VS的处理,1.VS需要作为RS(直实服务器)的网关。当包到达1.VS时,1.YS做目标地址转换(DNAT),将目标IP改为RS的IP。RS接收到包以后,仿佛是客户端直接发给它的一样.RS处理完,返|可响应时,源IP是RSIP.目标IP是客户端的IP.这时RS的包通过网关1.Y

8、S中转,1.YS会做源地址转换(SNAT),将包的源地址改为VIP,这样,这个包对客户端看起来就仿佛是1.vS直接返回给它的.4 DR模式:直接路由DR模式卜濡要1.VS和RS集群绑定同一个VIP(RS通过将VIP绑定在100pback实现),但与NT的不同点在于:请求由1.VS接受,由真实提供服务的服务(RealSerYer,RS)直接返回给用户,返回的时候不经过1.VS.详细来看,一个请求过来时,1.VS只.曲要将网络帕的购C地址修改为某一台RS的MAC.该包就会岐转发到相应的RS处理.,注意此时的源IP和目标IP都没变,1.VS只是做了一下移花接木。RS收到1.VS转发来的包时,链路层发

9、现MAC是自己的,到Jt面的网络层,发现IP也是自己的,于是这个包被合法地接受,RS感知不到前面有1.YS的存在。而当RS返回响应时,只要直接向海IP(即用户的IP)返回即可,不再经过1.VS.2192.168.1.20MJC:25S.25S.2SS.0VT192.168.1.2RMaU2S52SS7SS.0MAC:AAAASrc;WDeVCgntIP100pbMkIP:192,168.12J3a:25S2SS.2SS.2SSMACBBBBSfCCWMlP1、VW1,MACtBBSMAC/幺的接Src:C1teMIPDo:VIPOsMACJUkAADR负载均衡模式数据分发过程中不修改IP地址,

10、只修改mac地址,由于实际处理请求的真.实物理IP地址和数据请求目的IP地址一致,所以不需要通过负极均衡服分器进行地址转换,可将响应数据包直接返回给用户浏览器,避免负鼓均衡服务器网卡带宽成为瓶颈。因此,DR模式具有较好的性能,也是目前大型网站使用最广泛的一种负载均衡手段.5 1.VS的优点抗负载能力强、是工作在传瑜厩上仅作分发之用,没有流景的产生,这个特点也决定了它在负载均衡软件里的性能最强的,对内存和CPU资源消耗比蛟低.配置性比蛟低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率.工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方

11、案,如1.VS+Keepalived.无流量,IVS只分发请求,而流量并不从它本身出去,这点保证了均衡器10的性能不会受到大流量的膨响.应用范围比较广,因为1.VS工作在传输层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、在线聊天室等等.6 1.VS的缺点软件本身不支持正则表达式处理,不能做动睁分离;而现在许多网站在这方面都有较强的需求,这个是Nginx、HAProxy+Keepalived的优势所在.如果是网站应用比较庞大的话,1.VS/DR+Keepalived实施起来就比较豆杂了,相对而言,NginHAProxy+Keepalived就简单多了.NginxNginx是一个强

12、大的Web服务器软件,用于处理图并发的HTTP清求和作为反向代理1Nignx的架构设计相对于传统基于进程或线程的模型(APaChe就采用这种模组)在处理并发连接时会为希一个连接建立一个单独的进程或线程,口在网络或者输入/输出操作时阻潴,这将导致内存和CPU的大量消耗,因为新起一个单独的进程或线程需要准备新的运行时环境包括堆和栈内存的分配,以及新的执行上下文,当然,这些也会导致多余的CPU开梢.最终,会由于过多的上下文切换而导致服务涔性能变差。反过来,Nginx的架构设计是采用模块化的、拓于事件驱动、异步、单规程且非阻塞。Nginx大丹使用多路复用和事件通知,Nginx启动以后,会在系统中以da

13、emon的方式在后台运行,其中包括一个master进程,n(n-I)个Uorker进程.所有的进程都是单线程(即只有一个主线程)的,且JS程间通信主要使用共享内存的方式.其中,master进程用于接收来自外界的信号,并给WOrker进程发送信号,同时监控worker进程的工作状态。Uorker进程则是外部请求真正的处理者,每个worker请求相互独立且平等的竞争来自客户端的请求,请求只能在一个worker进程中被处理,且一个worker进程只有一个主线程,所以同时只能处理一个请求.(原理同Netty很像)2 Nginx负载均衡Nginx负裁均衡主要是对七层网络通信模型中的第七层应用层上的htt

14、pshttps进行支持。Nxinx是以反向代理的方式进行负收均衡的。反向代理(ReverseProxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的眼务器,并将从服务器上得到的结果返回给Internet上诜求连接的客户地,此时代理服务器对外就表现为一个服务器,Nginx实现负载均衡的分配策略有很多,Nginx的upstream目前支持以卜.几种方式:轮询(默认):每个请求按时间顺序逐一分配到不同的后/服务器,如果后端服务器down掉,能自动刷除.weight:指定轮询几率,Weight和访问比率成正比,用于后端服务器性能不均的情况.ip.hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题.fair(第三方):按后端服务器的晌应时间来分配请求,响应时间短的优先分配.Ur1.haSh(第三方):按访问url的hash结果来分死请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效.3 Nginx的优点跨平台:Nginx可以在大多数UnixlikeOS编译运行,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > Web服务

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!