收藏 分销(赏)

Cdn设计实现及负载匀衡.ppt

上传人:pc****0 文档编号:13177213 上传时间:2026-01-30 格式:PPT 页数:35 大小:3.29MB 下载积分:10 金币
下载 相关 举报
Cdn设计实现及负载匀衡.ppt_第1页
第1页 / 共35页
Cdn设计实现及负载匀衡.ppt_第2页
第2页 / 共35页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,CDN,设计实现及负载均衡,解决高并发访问及缓存加速的一种途径,需求的产生,南北互联问题导致北方的用户访问电信网内的服务器十分缓慢和艰难,南方的用户访问网通网内的服务器也是如此,高并发、大流量的站点,访问加速,nginx,承担每个机房,Web,负载均衡服务,简单的,Nginx,负载均衡配置,upstream,bbs_server_pool,server 192.168.1.15:80 weight=1,max_fails,=2,fail_timeout,=30s;,server 192.168.1.16:80 weight=1,max_fails,=2,fail_timeout,=30s;,server 192.168.1.17:80 weight=1,max_fails,=2,fail_timeout,=30s;,server 192.168.1.18:80 weight=1,max_fails,=2,fail_timeout,=30s;,在,nginx.conf,配置文件中,用,upstream,指令定义一组反向代理,/,负载均衡后端服务器池。,简单的,Nginx,负载均衡配置,server,listen80;,server_name,*.,;,location/,proxy_pass,,bbs_server_pool,;,proxy_set_header,Host$host;,proxy_set_header,X-Forwarded-For$,remote_addr,;,access_log,off;,简单的,Nginx,负载均衡配置,proxy_pass,,bbs_server_pool,;,用于指定反向代理的服务器池。,proxy_set_header,Host$host;,当后端,Web,服务器上也配置有多个虚拟主机时,需要用该,Header,来区分反向代理哪个主机名。,proxy_set_header,X-Forwarded-For$,remote_addr,;,如果后端,Web,服务器上的程序需要获取用户,IP,,请从该,Header,头获取。,Nginx,负载均衡双机互备,正常情况下,两台,Nginx,负载均衡服务器全部处于活动状态,对外提供服务。,Squid,反向代理加速网站,Squid,反向代理的实现原理,客户端请求访问,WEB,服务时,,DNS,将访问的域名解析为,Squid,反向代理服务器的,IP,地址,这样客户端的,URL,请求将被发送到反向代理服务器。如果,Squid,反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的,WEB,服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。,配置的系统环境:,一台,DNS,服务器:操作系统,Freebsd,,软件,BIND 9.5,,,IP 192.168.76.222,;,三台,Squid,服务器:操作系统,Linux AS 4,,软件,Squid 3.0,,相应的,IP,如下:,Squid1,:,192.168.76.223,Squid2,:,192.168.76.224,Squid3,:,192.168.76.225,三台,WEB,服务器:操作系统,Linux AS 4,,应用软件,Tomcat 5.0+Mysql,,相应的,IP,地址如下:,webServer1,:,210.82.118.195,webServer2,:,192.168.76.226,webServer1,:,192.168.76.227,配置,Squid1,服务器,#,配置,squid2,、,squid3,为其邻居,当,squid1,在其缓存中没有找到请求的资源时,通过,ICP,查询去其邻居中取得缓存,cache_peer,sibling 80 3130,cache_peer,sibling 80 3130,#squid1,的三个父节点,,originserver,参数指明是源服务器,,round-robin,参数指明,squid,通过轮询方式将请求分发到其中一台父节点;,squid,同时会对这些父节点的健康状态进行检查,如果父节点,down,了,那么,squid,会从剩余的,origin,服务器中抓取数据,cache_peer,210.82.118.195 parent 8080 0 no-query,originserver,round-robin,name=webServer1,cache_peer,192.168.76.226 parent 8080 0 no-query,originserver,round-robin,name=webServer2,cache_peer,192.168.76.227 parent 8080 0 no-query,originserver,round-robin,name=webServer3,#,将,域的请求通过,RR,轮询方式转发到三个父节点中的一个,cache_peer_domain,webServer1 webServer2 webServer3,Nginx,,,squid,现在有许多大型的门户网站如,SINA,都采用,squid,反向代理技术来加速网站的访问速度,可将不同的,URL,请求分发到后台不同的,WEB,服务器上,同时互联网用户只能看到反向代理服务器的地址,加强了网站的访问安全。,最新的,Nginx,0.8.35,版本,,proxy_cache,和,fastcgi_cache,已经比较完善,加上第三方的,ngx_cache_purge,模块(用于清除指定,URL,的缓存),已经可以完全取代,Squid,。我们已经在生产环境使用了,Nginx,的,proxy_cache,缓存功能超过两个月,十分稳定,速度不逊于,Squid,。在功能上,,Nginx,已经具备,Squid,所拥有的,Web,缓存加速功能、清除指定,URL,缓存的功能。而在性能上,,Nginx,对多核,CPU,的利用,胜过,Squid,不少。另外,在反向代理、负载均衡、健康检查、后端服务器故障转移、,Rewrite,重写、易用性上,,Nginx,也比,Squid,强大得多。这使得一台,Nginx,可以同时作为“负载均衡服务器”与“,Web,缓存服务器”来使用。,memcached,介绍,Memcached,由,Danga,Interactive,开发,用于提升,LiveJ,访问速度的,LJ,每秒动态页面访问量几千次,用户,700,万。,Memcached,将数据库负载大幅度降低,更好的分配资源,更快速访问,.,通过在内存里维护一个统一的巨大的,hash,表,它能够用来存储各种格式的数据,包括图像、视频、文件以,及数据库检索的结果等它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时访问这个缓存系统,这种方法不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的压力,最大的优点是提高了访问获取数据的速度,Consistent Hashing,算法,为了防止由于对,cache,结点的,hash,算法结果的不均匀,导致,cache,结点在圆环上的分布过于不均,使得每个,cache,的负载不同,,consistent hashing,算法还引用了,virtual node,的概念。也就是在对,cache,结点计算,hash,的时候,通过对,hash,过程的微调,使每个结点都算出很多(例如,200,个),hash,值,这些值以,virtual node,的形式添加到环上,所有属于这些,virtual node,的缓存对象都映射到该实际结点上,这样就基本能保持每个,cache,结点在,hash,空间中,cover,住基本同样多的对象了,.,Cache,命中率算法:服务器台数(,n,)和增加的服务器台数(,m,)计算增加服务器后的命中率计算公式如下:,(1-,n/(n+m,)*100,一般的,cache,利用,Consistent Hashing,上图的状态中添加一台,memcached,服务器。余数分布式算法由于保存键的服务器会发生巨大变化 而影响缓存的命中率,但,Consistent Hashing,中,只有在,continuum,上增加服务器的地点逆时针方向的 第一台服务器上的键会受到影响。,因此,,Consistent Hashing,最大限度地抑制了键的重新分布。而且,有的,Consistent Hashing,的实现方法还采用了虚拟节点的思想。,使用一般的,hash,函数的话,服务器的映射地点的分布非常不均匀。因此,使用虚拟节点的思想,为每个物理节点(服务器)在,continuum,上分配,100,200,个点。这样就能抑制分布不均匀,最大限度地减小服务器增减时的缓存重新分布。,通过下文中介绍的使用,Consistent Hashing,算法的,memcached,客户端函数库进行测试的结果是,由服务器台数(,n,)和增加的服务器台数(,m,)计算增加服务器后的命中率计算公式如下:,(1-,n/(n+m,)*100,常见的应用场景:,一般用于静态对象,网站的页面加速(指静态),下载服务:类似杀毒软件有客户端自动更新机制的下载,更需要,cdn,视频:特别是在线播放类型,如,FLV,传统的访问模式,所以的客户端访问同一个对象,众矢之的,Cdn,的访问模式,把用户请求分散,Cdn,定义,-,摘自,,Delivery Network,,即内容分发网络,是位于网络层与应用层之间的网络应用,其目的是通过在现有的,Internet,中增加一层新的网络架构,通过智能的中心管理系统,使用广泛分布的服务器群来帮助网站、媒体运营商等满足用户的各类需求。,Cdn,原理,内容缓存到不同地区的缓存服务器,就近访问原则,Dns,视图,(view),区分用户的访问来源,Cdn,实现的实现,关键技术,(1),dns,视图,(view):bind9,或,dnspod,(2),内容缓存,:squid,,,nginx,辅助技术,(1),负载均衡,:,lvs+keepalived,(,win,下是,NLB,群集),(2),监控,:,nagios,,,cacti,Cdn,设计要点,选定核心缓存节点(电信、网通各,2,个),选定边缘缓存节点(覆盖到省),归类,ip,地址:哪些,ip,地址属于哪些运营商?,Dns,的解析依赖一个庞大的地址库判定客户请求来源,然后才可能实现用户的就近访问。,容错和负载均衡,如果自己做一个简单的,cdn,应用,可能只需要电信和网通,2,个节点,不必有边缘和核心的区分;,ip,库也简化成电信、网通、其他,即,dns,只涉及,3,个视图(,VIEW,),一个样例,用户,dns,处理,一般情况下,用户的,dns,用,A,记录直接把主机名解析到源站,IP.,为了做,cdn,及负载。我们将域名指向多台缓存,ip,(,vip,),利用,dns,(,dnspod,)做线路判断。,Vip,利用,squid,或,nginx,做负载真正的,web,服务。,集群与负载均衡,所有节点都在各自的网段采取集群和负载均衡技术,Lvs,结合,keepalived,是最佳的选择,压力测试,监控:,压力测试(,apache,下的,ab,;,webbench,),服务及主机监控:,nagios,是很不错的选择。,流量监控:,cacti,或,mrtg,报警:使用,mail,方式,使用飞信短信方式。可以外购短信服务,把它整合到监控平台中,搜企平台规划图,linux,1,线路平台,利用,dnspod,分配不同线路用户。,2,用,nginx,+(,程序,)+,mysql,(,单独服务,),,实现,web,平台,用,vip,实现,nginx,反向代理。(双机互备),3,用,memcached,实现数据库缓存。,consisten,hashing,实现在增,减,men,服务时稳定命中率。,4,,索引利用,sphinx+mysql,实现。,搜企平台结构,Window,平台下,1,,先做,dnspod,做为智能解析。区分客户线路,2,,用,squid,或,nginx,做为静态页面缓存 存缓,3,,利用,nginx,做为静态页面存储(网页,图片,,ccs,等)。,并做为,web,负载均衡,和缓存。,4,,利用,nginx,负载技术,做,windos,下,iis+tocmat+solr,+,solr-memcache,的动态处理。,5,,利用,memcache,进行数据缓存。数据库为,sql2005,6,数据同步。,Linux,下用,sersync;window,下用,cwrsync,搜企,.,cn,平台运维规划思路及拓扑图解释,需求点:,考虑对像 互联网上不同地区,不同线路的客户能快速查询搜企,.,cn,网站的信息。且能准确返回给客户有用的信息。(注意点“不同线路”“快速即响应时间”“准确性”)总之一句话,在有限的资源(人力资源,硬件资源,带宽资源,,ip,资源)下,以人为本,以客户最好的需求为前提,做到让客户喜欢,需要的平台。,规划平台主要几点思路,1,,,dnspod,做为智能解析,区分不同线路的客户,提高因线路不同而造成的响应速度。(中国目前有电信,网通,铁通等线路)。,2,,利用,squid,集群(最好,3,台以上的配置)做为最前端。做为静态信息的缓存和做为后端真实,web,服务的反向代理功能。,Squid,做为前端,提高了访问速度,对真实的,web,也启到安全性的做用。,Squid,配置几点:,A,)可用,dns,服务做为轮询,向访问信息分配到不同的,squid,服务。,B,)前面的,A,项,可改为利用,lvs+keepalive,实现负载。(好处是健康状态检查,权重分配),对不同硬件配置,不同带宽的服务群是一个好的选择,能较好的分配流量走向。,3,,,nginx,做为真实的,web,服务,用于存储静态信息(静态网页,图片,,js,,,css,,,swf,等静态信息)。,Nginx,具有高并发,稳定性,低消耗,故障转移等特性。,Nginx,配置几点:,A,)每组,2,台,web,服务。利用,nginx,的负载技术,实现双机互备,全自动切换,故障转移。,B,)利用,sersync,对,2,台的信息进行同步(些系统比,rsync,的优点是自动加入了,crontab,功能,和进程功能,只对删,减,增的数据同步,不会列表等占用资源的操做)。,4,,搜索引擎平台为,windows2003,系统架设,iis+apache+tomcat+solr,。,5,,,Sql2005,做为,solr,搜索的数据库,6,,,Memcached,做为,solr,的缓存平台(,solr,要打,memcache,补丁)。利用,memcached,将负载的几台,solr,搜索服务的信息共同创建缓存,提高了命中率,和搜索速度。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服