你们对CDN并不陌生,工做中或多或少都有所接触,最近也有人问到,在此对CDN相关概念和流程作下总结,但愿还能对其余朋友也有所帮助。nginx
1、什么是CDN浏览器
维基百科上是这样定义的:缓存
CDN:内容分发网络(Content delivery network或Content distribution network)是指一种经过互联网互相链接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其余文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。服务器
对于还未了解的朋友,可能还不清楚CDN究竟是啥,究竟是作什么的?下面举个例子说明下:微信
之前尚未火车票代售点,12306.cn也只不过是最近几年才有。那时候火车票还智能在火车站的售票大厅购买,好多小县城不通火车,火车票要到市里去买,从小县城到市里去买火车票来回要花很多时间。后来小县城有了火车票代售点,能够直接在代售点购买车票,方便了不少,全市人民不再用苦逼的排队在一个点买票了,能够分散到不一样的火车票代售点。那么CDN就能够理解为分布在每一个县城的火车票代售点,用户在浏览网站时,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求,这样上海的移动用户的请求就不用千里迢迢跑到北京电信机房的服务器上了(假设源站部署在北京电信机房)。这样,CDN节点解决了跨运营商和跨地域访问的问题,访问时间大大下降,同时,大部分请求在CDN边缘节点完成,CDN起到了分流做用,减轻了源站的负载。网络
2、CDN工做流程架构
用户访问未使用CDN缓存网站的过程为:负载均衡
用户在浏览网站的时候,浏览器可以在本地保存网站中的图片或者资源文件,这样用户再次访问该网站的时候,浏览器就不用再下载所有的资源文件,减小了下载量意味着提升了页面加载的速度。性能
CDN网络是在用户和服务器之间增长Cache层,主要是经过接管DNS实现,将用户的请求引导到Cache上得到源服务器的数据测试
下面让咱们看看访问使用CDN缓存后的网站的过程:
通常来讲CDN节点会包括nginx和cache两部分,nginx做负载均衡,cache做为缓存,用户请求到CDN节点后,若是cache中没有缓存用户的内容(包括真的没有或者是过时时间到了),这时候CDN节点会去源站去请求用户所需的资源,拿到数据后CDN节点会作两件事情,把数据返回给用户,而且把数据缓存在cache,这样一样的请求就能够从cache取,不须要回源了。另外你要注意,当前的CDN不会让源站来推送数据的,都是第一次去源站取,采用拉数据的方式。
对于测试人员,须要确认下网站所加载的图片等资源是否都走了CDN,看下是否为CDN域名地址,网站提速不可缺乏的一部分。
当前CDN都在拼价格,不想之前被chinaCache垄断,BAT都有本身的CDN节点,对第三方CDN的依赖也在降低。就写到这吧,是否对CDN有所了解了,留言告诉我吧!
测试架构师论坛:http://www.youxitest.com
了解更多请关注微信公众号:测试架构师