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

上传人:李司机 文档编号:7182811 上传时间:2024-06-29 格式: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》由会员分享,可在线阅读,更多相关《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:每个请

15、求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题.fair(第三方):按后端服务器的晌应时间来分配请求,响应时间短的优先分配.Ur1.haSh(第三方):按访问url的hash结果来分死请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效.3 Nginx的优点跨平台:Nginx可以在大多数UnixlikeOS编译运行,而且也有Windows的移植版本配置异常简单:非常容易上手.配置风格跟程序开发一样,神一般的配置非阻塞、高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到23万井发连接数事件驱动:通信机制采用epoll模

16、型,支持更大的并发连接MasterZWorker结构:一ymaster进程,生成一Tw或多个worker进程内存消耗小:处理大井发的请求内存消耗非常小.在3万并发连接下,开启的10个Nginx进程才消耗150M内存(15M*1O=15OM)内置的健康检查功能:如果Nginx代理的后端的某台Web服务器宕机了,不会影响前端访问节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头稳定性高:用于反向代理,宕机的概率微乎其微4 Nginx的缺点Nginx仅能支持http,https和Email协议,这样就在适用范围上面小些,这个是它的缺点。对后端服务器的健康检查,只支持通过端口来检测,不

17、支持通过url来检测.不支持Session的直接保持,但能通过ip.hash来解决.HAProxyHAProxy支持两种代理模式TCP(四层)和HTTP(七层),也是支持虚拟主机的。HAProxy的优点能终补充Nginx的一些缺点,比如支持Session的保持,Coukie的引导:同时支持通过获取指定的url来检测后端服务器的状态IAPrOXy艮1.VS类似.本身就只是款负载均衡软件:单纯从效率上来讲HAProxy会比Nginx有更出色的货找均衡速度,在并发处理上也是优FNginX的,IWProxy支持TCP协议的负成均衡转发,可以对MySQ1.读进行负载均衡,对后端的极SQ1.节点进行检测和负载均衡,大家可以用1.VS+Keepalived对MySQ1.主从做负载均衡.IIAProxy优载均衡策略非常多:Round-robin(轮循)、Neight-round-robin(带权轮循)、source原地址保持)、Rl(请求UR1.)、rd-cookie(根据COOki。

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号