CDN-内容分发网络
CDN 的基本原理是:
- 采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中;
- 在用户访问网站时,实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息来选择最佳缓存服务器;
- 然后,将用户的请求重新导向最佳的缓存服务器上,由缓存服务器直接响应用户请求。
CDN 是一个策略性部署的整体系统,包括4个要件
- 分布式存储
- 负载均衡
- 内容管理
- 网络请求的重定向,当用户访问了使用 CDN 服务的资源时,DNS 域名服务器通过 CNAME 方式将最终域名请求重定向到 CDN 系统中的智能 DNS 负载均衡系统。智能 DNS 负载均衡系统通过一组预先定义好的策略(如内容类型、地理区域、网络负载状况等),将当时能够最快响应用户的节点地址提供给用户,使用户可以得到快速的服务。
CDN 访问流程
- 用户在浏览器中访问域名,域名解析的请求被发往网站的 DNS 域名解析服务器;
- 由于网站的 DNS 域名解析服务器对此域名的解析设置了 CNAME,请求被指向 CDN 网络中的智能 DNS 负载均衡系统;
- 智能 DNS 负载均衡系统对域名进行智能解析,将响应速度最快的节点 IP 返回给用户;浏览器在得到速度最快节点的 IP 地址以后,向 CDN 节点发出访问请求;
- 由于是第一次访问,CDN 节点将回到源站取用户请求的数据并发给用户;
- 当有其他用户再次访问同样内容时,CDN 将直接将数据返回给客户,完成请求/服务过程。
作用
确保用户在不同地区能用最快的速度打开网站,CDN 主要用来使用户就近获取资源。
突破浏览器并发限制。同一时间针对同一域名下的请求有一定数量限制,超过限制数目的请求会被阻塞。大多数浏览器的并发数量都控制在 6 以内。有些资源的请求时间很长,因而会阻塞其他资源的请求。因此,对于一些静态资源,如果放到不同的域名下面就能实现与其他资源的并发请求
负载均衡,某个域名崩溃用户也能通过其他域名访问网站。
Content Delivery Network(CDN)-内容分发网络
使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度。 HTML/CSS/JS,图片和视频等静态内容由 CDN 提供。CDN 的 DNS 解析会告知客户端连接哪台服务器。CDN 的关键技术主要有内容存储和分发技术。
优点
- 访问加速 - 由于 CDN 就近服务
- 降低负载 - 如果 CDN 已经能获取数据,那么就不必请求源站,这自然降低了源站(服务器)的负载。
缺点:
- CDN 成本可能因流量而异。
- 如果在 TTL 过期之前更新内容,CDN 缓存内容可能会过时。
CDN 解决由于网络带宽小、用户访问量大、网点分布不均而产生的用户访问网站响应速度慢的根本原因。
适用场景:访问量大的网站(如:在线视频、游戏、图片、音频、社交、电商、下载站等)
CDN 就是将内容缓存在离用户更近的节点上,以此来提高用户体验;
所以 CDN 适用于具有一定量级的静态资源访问,包括 html,js,css,apk,mp3,flv,jpg,gif、mp4、flv 等所有的静态资源。