CDN:Content Delivery Network,内容分发网络。将网站的内容发布到最接近用户的网络边缘,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。通俗的说,在用户和我们的服务器之间加一个缓存机制,动态获取IP地址根据地理位置,让用户到最近的服务器访问。
CDN的工作流程: 用户在自己的浏览器中输入要访问的网站的域名,浏览器向本地DNS请求对该域名的解析,本地DNS将请求发到网站的主DNS,主DNS根据一系列的策略确定当时最适当的CDN节点,并将解析的结果(IP地址)发给用户,用户向给定的CDN节点请求相应网站的内容。
CDN的优势:
(1)CDN节点解决了跨运营商和跨地域访问的问题,访问延时大大降低;
(2)大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源站的负载。
关键技术主要有:
1.负载均衡:将网络的流量尽可能均匀分配到几个能完成相同任务的服务器或网络节点上,由此来避免部分网络节点过载。
2.内容存储和分发技术:将占网站主体的大部分静态网页、图像和流媒体数据分发复制到各地的加速节点上。
3.缓存技术,两级缓存(浏览器,cdn),缺点是当网站更新时,如果CDN节点上数据没有及时更新,即便用户使浏览器端的缓存失效,也会因为CDN边缘节点没有同步最新数据而导致用户访问异常。
cdn的缓存策略:
当客户端向CDN节点请求数据时,CDN节点会判断缓存数据是否过期,若缓存数据并没有过期,则直接将缓存数据返回给客户端;否则,CDN节点就会向源站发出回源请求,从源站拉取最新数据,更新本地缓存,并将最新数据返回给客户端。
通过http响应头中的Cache-control: max-age的字段来设置CDN边缘节点数据缓存时间。