二、CDN概念和思路、基本原理、优势及应用领域和常见的缓存策略
1.CDN概念和思路、基本原理、优势及应用领域和常见的缓存策略
1.1 CDN概念:
CDN (全称Content Delivery Network)是内容分发网络,是建立并覆盖在承载网之上、由分布在不同区域的边缘节点服务器群组成的分布式网络,替代传统以WEB Server为中心的数据传输模式。
简单的说,CDN的工作原理就是将您源站的资源缓存到位于全国各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、分担源站压力,保证用户访问资源的速度和体验。
CDN主要功能是将网站内容发布到最接近用户的边缘节点,使网民可就近取得所需内容,提供网民访问的响应速度和成功率,同时能够保护源站。解决由于地域、带宽、运营商接入等问题带来的访问延迟高问题,有效帮助站点提升访问速度。通俗的来说,如果用户租用或者托管了服务器在北京地域,采用的CDN技术后,CDN技术就可以实现把北京服务器的数据分发在其他很多部署CDN技术的服务器上面,比如是山西地区。那么山西的用户访问服务器的时候就是访问的山西服务器上面的,而不需要调用北京服务器上面的数据。这样就缩短了用户访问时间,增加了体验效果。使用CDN服务器的优势就是缩短用户访问服务器的距离问题,缩短访问服务器的时间,提升了浏览速度。所以称呼CDN,也叫CDN加速服务器。
另一种理解:CDN当于镜像一个网站了,第二次访问图片等静态文件是直接读取CDN服务器上的,大大减轻了源站的负担。
1.2 CDN基本思路
其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。CDN网络架构主要由两大部分,分为中心和边缘两部分:中心指CDN网管中心和DNS重定向解析中心,负责全局负载均衡,设备系统安装在管理中心机房;边缘主要指异地节点,CDN分发的载体,主要由Cache和负载均衡器等组成;
3.CDN基本原理:
是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
4.CDN服务器优势:强大快速、操作简单、稳定安全、节省成本;CDN节点解决了跨运营商和跨地域访问的问题,访问延时大大降低;大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源站的负载。CDN服务可用于 网站加速、存储分发、视频点播、视频直播等领域。
5.常见的CDN缓存策略与回源策略:
全球18家领先CDN企业,其中中国公司有五家,分别是网宿科技、腾讯云、阿里云、蓝汛、白山,不过,相对前三家,蓝汛和白山的规模和业务辐射领域则更小一些。如果贵公司使用了多家CDN服务商的服务。那么为了资源的最优调配和多场景使用可以针对不同的CDN服务商的服务使用不同的CDN缓存策略。但是基本上都是基于响应状态码、动静资源类别来制定缓存策略,只是不同的服务商可能略有差异。比如对于白山和神狐可以采用如下两个不同的缓存策略:
5.1白山CDN的缓存策略
1)常见动态后缀默认不缓存:php|ashx|aspx|asp|jsp|do|cgi-bin;一般即使源站有配置缓存控制头,也不缓存。mp4|flv|f4v|m4a 以上4类视频文件类型默认会响应302进行访问优化调度;
2)301、302、大于等于400的(403 404)、5xx状态码不缓存;
3)响应头部没有Last-Modified头部,且无cache-control头部信息不缓存;contetn-length为0不缓存;
4)如果源站未设置缓存时间(cache-control头部),则可自定义规则进行匹配,一般的可以按照如下的规则设置
a.目录|js|css|html|htm|xml 缓存30分钟;
b.swf|jpg|gif|png|bmp|ico 缓存1天;
c.wmv|mp3|wma|ogg|flv|mp4|avi|mpg|mpeg|f4v|hlv|rmvb|rm|3gp|img|bin|zip|rar|ipa|apk|jar|sis|xap|msi|exe|cab|7z|pdf|doc|docx|xls|xlsx|ppt|pptx|txt 缓存1年;
5.2神狐CDNd的缓存策略
源站缓存策略:当缓存规则配置的是遵循源站,所有域名,所有文件类型,所有状态码都会根据源站的缓存策略进行缓存。(会根据 Cache-Control 和 Expires 头的设置判断缓存时间)
备注:当缓存规则配置的是遵循源站,但源站没有返回任何有效的缓存头时,会对回源内容进行动静内容识别。具体来说是:根据响应头中的 Content-Type 字段和 URL 中的文件后缀名来判断是否是静态内容,其中 Content-Type 匹配优先级高于文件后缀名。
a.针对静态资源,所有正常状态码(大于等于 200 小于 400)均缓存 8 天。特别地,源站301 响应缓存 2 小时,源站302 响应缓存 20 分钟
b.针对动态资源,程序会自动识别,则不进行缓存。例如:php|jsp|asp|aspx|do
c.301、302、大于等于400的(403 404)、5xx状态码不缓存;
6.搭建好CDN服务器之后该做什么
第一:因为搭建镜像CDN服务器是完整地复制了源站的文件和URL,所以为了避免被搜索引擎误认为抄袭重复站,我们可以给CDN站加上Robots.txt,阻止搜索引擎收录.
第二:做好Nginx防盗链。如果你的CDN服务器流量不怎么够的话,建议还是做好防盗链措施,同时还可以帮你减轻服务器负担。
第三:设置好Nginx默认图片。这个主要是针对缓存Gravatar头像的,当源站服务器不存在某一个图片或者文件时,我们可以给Nginx设置一个默认的图片或者链接,这样缓存看起来就完美了
参看博文:
https://www.cnblogs.com/qinhao517/p/9229116.html
https://blog.csdn.net/wzmde007/article/details/79498045