CDN学习笔记1
又碰到了使用CDN的场景,就整理一下笔记好了。
假设我们有一个在华北使用联通网络的低配服务器(学生姬)上部署的网站,那么其他区域或运营商的用户访问的时候,由于地理位置以及跨运营商的原因会造成访问时间较长;如果这个服务器的带宽比较小,用户在访问图片等较大文件时需要的加载时间也会较长;如果这个网站有了一定的访问量,在多人同时访问时对服务器也会有较大的压力,会造成响应缓慢。在这一系列的因素影响下,想建设好网站就会需要更好的服务器配置,就需要加钱了。
使用CDN的话,就能较好的解决这些痛点。
简介
CDN(Content Delivery Network),即内容分发网络,依靠部署在各地的节点服务器,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度。
基本架构和工作流程
最简单的CDN由DNS服务器和CDN节点服务器组成:
使用CDN为www.exam.com加速;CDN服务提供商的cname记录为cdn.www.exam.com,通过cname解析绑定了域名cdn.exam.com。
用户IP:1.1.1.1
网站源服务器IP:2.2.2.2
网站源域名:www.exam.com
网站CDN加速域名:cdn.exam.com
CDN提供的cname记录:cdn.www.exam.com
CDN节点cname记录:cdn1.goodcdn.com
cdn1.goodcdn.com的A记录:3.3.3.3
用户初次发起访问请求的流程如下:
- 用户访问cdn.exam.com上的1.jpg(http://cdn.exam.com/1.jpg),向DNS服务器请求解析域名。
- DNS收到解析cdn.exam.com的请求,发现存在cname记录cdn.www.exam.com,判断为使用CDN业务,识别用户ip的地理位置和运营商信息,通过cname解析到离用户最近的CDN节点(cdn1.goodcdn.com)(虽然这里只有一个CDN节点服务器)。
- DNS服务器返回cname与A记录,用户获得CDN节点的ip,发起请求(对3.3.3.3发送请求,host头为:cdn.exam.com,资源为:1.jpg)。
- CDN节点收到用户请求,发现没有相应的资源(cdn.exam.com的1.jpg),于是向网站源服务器(www.exam.com)请求该资源。
- 网站服务器将相应资源返回给CDN节点,CDN节点根据资源类型及策略决定是否将该资源存储到CDN节点上。
- CDN节点返回相应资源给用户,完成请求。
至此,一次CDN的加速过程就完成了。其中流程4和5称为回源,当用户再次请求同样的资源时,若CDN节点上有对应的资源,就无需对源服务器进行请求,便减少了访问所需的时间和减少了源服务器的压力。
CDN的作用
- 加速
商业上的CDN是分布式部署的,在不同的运营商和区域部署大量的节点,通过DNS解析能使用户访问到距离最近的节点;将图片、文本等静态资源缓存在CDN节点上,提升访问速度。 - 安全
从上面的CDN工作流程可以发现,用户在访问网站的时候,是无法获取源服务器信息的,源服务器受到直接攻击的风险就会减少;有些CDN会提供防御网络攻击的功能,进一步减少源服务器受到攻击的风险。 - 减压
CDN避免了用户直接访问源服务器,减轻了服务器的压力。
未完待续…………
_(:3 」∠)_