关于CDN
DNS域名解析过程
DNS即Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络可以识别的ip地址。人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。比如:上网时输入的www.baidu.com会自动转换成为220.181.112.143。
常见的DNS解析服务商有:阿里云解析,万网解析,DNSPod,新网解析,Route53(AWS),Dyn,Cloudflare等。
传统方式请求静态资源
1.比如访问页面请求
www.toov5.com/23234.jpg
2.
传统方式架构弊端:
1.带宽传输压力大
2.因为所有用户全部聚集到同一个地区服务器上访问,无法保证整体的系统高可用
3.因为如果客户端与服务器端传输距离越远,那么宽带传输非常耗资源,导致用户体验非常差,响应慢。
什么是CDN
CDN加速意思就是在用户和我们的服务器之间加一个缓存机制,动态获取IP地址根据地理位置,让用户到最近的服务器访问。
CDN的全称是Content Delivery Network,即内容分发网络。
CDN是一组分布在多个不同地理位置的Web服务器,用于更加有效地向用户发布内容,在优化性能时,会根据距离的远近来选择。
CDN系统能实时地根据网络流量和各节点的连接,负载状况及用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上,其目的是使用户能就近地获取请求数据,解决网络拥塞,提高访问速度,解决由于网络带宽小、用户访问量大、网点分布不均等原因导致的访问速度慢的问题。
由于CDN部署在网络运营商的机房,这些运营商又是终端用户网络的提供商,因此用户请求的第一跳就到达CDN服务器,当CDN服务器中缓存有用户请求的数据时,就可以从CDN直接返回给浏览器,因此可以提高访问速度。
CDN能够缓存JavaScript脚本、CSS样式表、图片、图标、Flash等静态资源文件(不包括html页面),这些静态资源文文件的访问频率很高,将其缓存在CDN可以极大地提高网站的访问速度,但由于CDN是部署在网络运营商的机房,所以在一般的网站中都很少用CDN加速。
CDN内容分发原理
1) 用户向浏览器提供要访问的域名;
2) 浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的
CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问;
3) 此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;
4) 缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
5) 缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程;
6) 客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
CDN目的是为了减轻客户端与服务器端宽带传输,CDN缓存静态资源
CDN获取客户端IP地址,实现动态化(DNS负载均衡),根据客户端的IP地址判断CDN内容分发服务器距离,让客户端从最近的服务器进行访问。判断哪台cdn服务器距离客户端最近。
cdn部署在全国各个地区
CDN 应用场景: 缓存静态资源 img css js
最新文章
- 4 django系列之HTML通过form标签来同时提交表单内容与上传文件
- python之路十四
- AmazeUI 框架知识点-元素
- PHP的开发环境
- android 开发学习笔记 (一)
- 【原创】还原Hyper-V 到一个新的虚拟机
- 打开都是“Smart Adobe CC Blocker v1.0”已损坏,打不开。 您应该将它移到废纸篓。
- oracle:db-link使用
- C#冒泡排序详解
- TIANKENG’s rice shop
- 如何用angularjs制作一个完整的表格之二__表格分页功能
- 细数JDK里的设计模式
- win10.64位wnmp-nginx1.14.0 + PHP 5. 6.36 + MySQL 5.5.59 环境配置搭建 结合Thinkphp3.2.3
- 使用git提交项目到码云
- 最全的jquery datatables api 使用详解
- SWUST OJ(952)
- 丑闻第三季 /全集Scandal迅雷下载
- Okhttp封装、网络层扩展
- SGE:qsub/qstat/qdel/qhost 任务投递和监控
- 25. Green Living 绿色生活
热门文章
- day1笔记 初识python,paython基础
- POJ 1861 &;amp; ZOJ 1542 Network(最小生成树之Krusal)
- Android:SlidingMenu+ListView+ViewPager 的滑动冲突
- Map Hashtable Hashmap 集合四
- SpringBoot整合Dubbo报错: java.lang.ClassCastException
- OC中nil、Nil、NULL、NSNull的区别
- MySQL中锁的类型
- 我的Android进阶之旅------>修改Android签名证书keystore的密码、别名alias以及别名密码
- Sql Server 2005 .bak备份文进行还原数据库
- Unity3D游戏开发从零单排(六) - 人物运动及攻击连击