CDN初识
cdn
全称:content delivery network或content ddistribute network,即内容分发网络,通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息,将用户的请求重新导向离用户最近的服务节点上。
cnd服务器通过缓存或者主动抓取主服务器的内容来实现资源储备,主要是加速静态资源,如网站上面上传的图片、媒体,以及引入的一些js、css等文件。
大部分企业使用cdn的原因是有一些比较频繁请求且容量比较大的文件,并且更新频率不那么高的文件,这些文件如果我们都放在自己的服务器上,对客户端而言访问时间长,对服务器端来说是占用服务器端的资源,所以我们采用分布式的方式扔在cdn上。
基础架构
最简单的cdn网络由一个dns服务器和几台缓存服务器组成:
1、当用户点击网站页面上的内容url,经过本地dns系统解析,dns系统会最终将域名的解析权交给cname指向的cdn专用dns服务器;
2、cdn专用dns服务器将cdn的全局负载均衡设备ip地址返回用户;
3、用户向cdn全局负载均衡设备发起内容url访问请求;
4、cdn全局负载均衡设备根据用户ip地址,以及用户请求的内容url,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
5、区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户ip地址,判断哪一台服务器距用户最近;根据用户所请求的url中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的ip地址;
6、全局负载均衡设备把服务器的ip地址返回给用户;
7、用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。
回源
当cdn缓存服务器中没有符合客户端要求的资源的时候,缓存服务器会请求上一级缓存服务器,以此类推,直到获取到,最后如果还是没有,就会回到我们自己的服务器去获取资源。 那都有哪些时候会回源呢?没有资源,资源过期,访问的资源是不缓存资源等都会导致回源。
回源cname一般是cdn领域的专业术语,通常情况下,是直接用ip进行回源的,但是如果客户源站有多个ip并且ip经常变化,对于cdn厂商来说,为了避免经常更改配置(回源ip),会采用回源cname方式进行回源,这样即使源站的ip变化了,也不影响原有的配置。
cdn本来是给网站加速的,但是有时会因为不合适的回源策略给服务器带来负担,只有选择正确的策略才能给自己的网站带来更高的访问效率。
cdn带来的好处
1、本地cache加速,提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性;
2、镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量;
3、远程加速:远程访问用户根据dns负载均衡技术,智能选择最快的cache服务器,加快远程访问的速度;
4、带宽优化:自动生成服务器的远程mirror cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽,分担网络流量,减轻原站点web服务器负载等;
5、集群抗攻击:广泛分布的cdn节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种ddos攻击对网站的影响,保证较好的服务质量。