CDN Content Delivery Network 内容分发网络
- 使用户能够就近获取所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度
- 一、CDN特点
- 二、CDN的工作原理
- 三、技术关键元素与DNS原理
- 四、CDN用途、架构、与分类
- 五、CDN相关问题解答
一、CDN特点
-
提高了用户的访问速度(大量图片和静态页面站点),提高了站点的稳定性
-
镜像服务消除了不同运营商之间互联的影响,实现了跨运营商网络加速,保证了不同网络中用户访问网络的质量
-
镜像服务器读取数据,减少了远程访问的带宽、分担网络流量、减轻原站点的压力
-
集群式抗攻击广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效的预防黑客入侵以及降低各种DDOS攻击对网站的影响,同时保证较好的服务质量
二、CDN的工作原理
加速前:
img.liupengju.org IN A 124.10.0.21(企业的服务器地址)
加速后:
img.liupengju.org IN CNAME img.liupengju.org.cachecn.com
-
解析后发现还是域名,会找cachecn.com的授权DNS服务器
-
通过CNAME记录解析img.liupengju.org.cachecn.com找到对应的IP地址(CDN公司的IP)从而找到CDN公司的智能DNS调度系统。
-
调度系统中会有各个地区的IP地址的列表。查找后发现用户所属的地区,会将靠近用户的地区的IP发送给用户
-
用户会根据发送的IP地址请求对应的CDN镜像服务器(缓存服务器),最终将数据返回给用户
三、技术关键元素与DNS原理
- 关键元素
1、DNS和智能DNS集群
2、Cache集群
3、用户源站(CDN服务的客户)
4、外围(计费、日志分析、存储等等) - DNS原理
用户输入www.baidu.com,会看本地缓存或hosts中的记录,就会解析。当二者都没有,就会查询本地DNS缓存,没有就会请求根服务器,根服务器上查询到有.com的顶级域名,会发送给本地DNS服务器,本地DNS服务器会请求COM顶级域名服务器,COM顶级域名服务器会将baidu.com的域名发送给本地DNS服务器,本地DNS服务器会请求baidu.com域名服务器,baidu.com的域名服务器查到有A记录(IP地址),会发送给本地DNS服务器。本地DNS服务器会缓存一份给DNS高速缓存服务器,此时电脑就会根据IP地址请求对应的IP地址。 - 智能DNS解析原理
里面有全国的城市对应的线路,根据用户的DNS或IP地址,与智能DNS中的记录进行比对,查看用户的所属地区,解析到对应的IP地址
四、CDN用途、架构、与分类
- CDN用途
企业或门户网站的图片、视频、CSS、JS、HTML等静态数据的缓存 - CDN架构
客户----CDN分布式集群----原始服务器 - CDN分类
静态资源:HTML、CSS、图片、JS
动态资源:JAVA、WEB服务
五、CDN相关问题解答
- CDN加速是对网站所在服务器加速,还是对其域名加速?
CDN是只对网站的某一个具体的域名加速。如果同一个网站有多个域名,则用户访问加入CDN的域名获得加速效果,访问未加入CDN的域名,或者直接访问IP地址,则无法获得CDN效果。 - CDN和镜像站点比较有何优势?
CDN对每个节点都有可用性检查,不合格的节点会第一时间剔出,从而保证了极高的可用率,而镜像站点无法实现这一点。
CDN部署简单,对原站基本不做任何改动即可生效。 - CDN和双线机房相比有何优势?
常见的双线机房只能解决网通和电信互相访问慢的问题,其它ISP(譬如教育网,移动网,铁通)互通的问题还是没得到解决。
而CDN是访问者就近取数据,而CDN的节点遍布各ISP,从而保证了网站到任意ISP的访问速度。另外CDN因为其流量分流到各节点的原理,天然获得抵抗网络攻击的能力。 - CDN使用后,原来的网站是否需要做修改,做什么修改?
一般而言,网站无需任何修改即可使用CDN获得加速效果。只是对需要判断访客IP程序,才需要做少量修改。 - 为什么我的网站更新后,通过CDN后看到网页还是旧网页,如何解决?
由于CDN采用各节点缓存的机制,网站的静态网页和图片修改后,如果CDN缓存没有做相应更新,则看到的还是旧的网页。
为了解决这个问题,CDN管理面板中提供了URL推送服务,来通知CDN各节点刷新自己的缓存。
在URL推送地址栏中,输入具体的网址或者图片地址,则各节点中的缓存内容即被统一删除,并且当即生效。
如果需要推送的网址和图片太多,可以选择目录推送,即可以对网站下目录下所有网页和图片进行了刷新。 - 能不能让CDN不缓存某些即时性要求很高的网页和图片?
只需要使用动态页面,asp,php,jsp等动态技术做成的页面不被CDN缓存,无需每次都要刷新。或者采用一个网站两个域名,一个启用CDN,另外一个域名不用CDN,对即时性要求高的页面和图片放在不用CDN的域名下。 - 网站新增了不少网页和图片,这些需要使用URL推送吗?
后来增加的网页和图片,不需要使用URL推送,因为它们本来就不存在缓存中。 - 网站用CDN后,有些地区反映无法访问了,怎么办?
CDN启用后,访客不能访问网站有很多种可能,可能是CDN的问题,也可能是源站点出现故障或者源站点被关闭,还可能是用户自己所在的网络出现问题,甚至电脑中毒导致无法访问