与代码交手这些年,你是否光采依旧,生机盎然?
CDN(Content Delivery Network)就是内容分发网络
,是构建在现有网络基础之上的智能虚拟网络。依靠部署在各个地方的边缘服务器,通过分布式存储
、负载均衡
、网络请求的重定向
和内容管理
等功能模块,以就近性和服务器负载的判断,确保内容以一种极为高效的方式为用户请求提供所需要的资源。先看图:
没有CDN
有CDN
1. 加速访问提高用户体验
CDN可以使用户就近获取所需资源,降低网络堵塞,提高用户访问响应速度和命中率
2. 有利搜索排名和转化
网站打开速度是影响网站排名的一个重要指标,使用CDN网站打开速度变快有利于搜索引擎排名,减少跳出率,从而有利于网站的转化率和销售量等
3. 减轻源站服务器压力
解决了网站的并发量过大造成服务器过载问题,由此减轻了源服务器的访问压力,节省了骨干网络带宽,可以接收更多流量,从而提升了网站的性能、可扩展性以及安全性
4. 解决宕机问题
当某个CDN服务器发生意外挂了(过载,攻击等),不会影响全部,系统会调用临近的健康的CDN服务器节点继续服务,从而具有更高的稳定性
5. 保障网站安全
相当于为网站添加了一把防护伞,能有效应对绝大部分网络攻击(DDOS等),网站被攻击也只会打到CDN节点为上,不会影响源站服务器;在内容安全上也可以解决盗版网站通过盗链之类的方法窃取内容
6. 节约成本
使用VPS或购买服务器来托管网站都是有带宽限制的,而使用CDN不用考虑购买服务器和后续的托管运维,服务器之间镜像同步,也不用为了管理维护技术人员而劳心劳力,降低了网站建设和维护成本,节省了人力、精力和财力
缺点
由于CDN采用各节点缓存的机制,如网站的静态网页和图片修改后,CDN缓存没有及时做相应更新,则看到的还是旧的网页。即使用户在浏览器使用Ctrl+F5的方式使浏览器端的缓存失效,也会因为CDN边缘节点没有同步最新数据而导致用户访问看到的还是旧见网页。我一般都是自己登录服务器管理后台去刷新CDN或者喊运维刷新
当给一个域名开通了CDN,要先给这个域名的DNS解析设置的后台添加一条CDN专用的解析记录,这条解析记录会让域名被解析之后指向一个CDN网络专用的处理DNS请求的服务器。并在CDN后台设置域名对应的原始web服务器(源站)的IP地址
回源
如果有其他设备也通过它来获取这个网站的资源文件,就可以在有缓存的CDN服务器上直接返回相应的文件数据了,并不需要每次都去源站上拉取,这就是CDN分发网络的基本工作机制
用户访问首先是来自客户端或者浏览器,这里也会有一层缓存(强缓存)。大家知道,浏览器的缓存都遵循标准的http协议,指定该header后,到了时间就会失效。所以我们可以在源站回源给CDN时,添加如Cache-Control:max-age=60
协议头,CDN会原封不动的透给浏览器,这样浏览器就可以实现1分钟内缓存失效,重新到CDN拉新的资源。
CDN技术广泛应用于互联网的各个场景,如:图片小文件、大文件下载、游戏加速、视音频点播、直播流媒体、全站加速、安全加速等。只有纯内网软件开发部署场景不需要使用CDN(PS:也有内网需要用到CDN的场景的,比如电信IPTV,移动OTT,广电数字电视这种大内容应用,服务属于广域网了。)
1. 网站站点/应用加速
站点或者应用中大量静态资源的加速分发,建议将站点内容进行动静分离,动态文件可以结合云服务器ECS,静态资源如各类型图片、HTML、CSS、JS文件等,建议结合对象存储OSS存储海量静态资源,可以有效加速内容加载速度,轻松搞定网站图片、短视频等内容分发
2. 视音频点播/大文件下载分发加速
支持各类文件的下载、分发,支持在线点播加速业务,如MP4、flv视频文件,主要的业务场景是视音频点播、大文件下载(如安装包下载)等,建议搭配对象存储OSS使用,可提升回源速度,节约近2/3回源带宽成本
3. 视频直播加速
视频流媒体直播服务,支持媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。结合弹性伸缩服务,及时调整服务器带宽,应对突发访问流量;结合媒体转码服务,享受高速稳定的并行转码,且任务规模无缝扩展
4. 移动应用加速
移动APP更新文件(apk文件)分发,移动APP内图片、页面、短视频、UGC等内容的优化加速分发。提供httpDNS服务,避免DNS劫持并获得实时精确的DNS解析结果,有效缩短用户访问时间,提升用户体验
CDN是只对网站的某一个具体的域名加速。如果同一个网站有多个域名,则访客访问加入CDN的域名获得加速效果,访问未加入CDN的域名,或者直接访问IP地址,则无法获得CDN效果
只需要使用动态页面,asp,php,jsp等动态技术做成的页面不被CDN缓存,无需每次都要刷新。或者采用一个网站两个域名,一个启用CDN,另外一个域名不用CDN,对即时性要求高的页面和图片放在不用CDN的域名下
CDN对网站的访客完全透明,不需要访客手动选择要访问的镜像站点,保证了网站对访客的友好性。CDN对每个节点都有可用性检查,不合格的节点会第一时间剔出,从而保证了极高的可用率,而镜像站点无法实现这一点。CDN部署简单,对原站基本不做任何改动即可生效
常见的双线机房只能解决网通和电信互相访问慢的问题,其它ISP(譬如教育网,移动网,铁通)互通的问题还是没得到解决。而CDN是访问者就近取数据,而CDN的节点遍布各ISP,从而保证了网站到任意ISP的访问速度。另外CDN因为其流量分流到各节点的原理,天然获得抵抗网络攻击的能力
CDN是什么?使用CDN有什么优势?- 知乎
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8