沒有産品在購物車中。
CDN,全称 Content Delivery Network,直接翻译就是内容分发网络,是一种分布式网络架构,旨在提高网站和网络内容的访问速度和稳定性。它通过在全球范围内部署多个边缘服务器,依靠中心平台的负载均衡、内容分发、调度等功能模块,将内容分发到用户所在的最近节点,使用户就近获取所需内容,从而减少网络拥塞、延迟和带宽消耗,提高用户访问时页面的响应速度和命中率,进而提升用户体验。
CDN的全称是(Content Delivery Network),即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。
簡單的說,CDN的工作原理就是將您源站的資源緩存到位于全球各地的CDN節點上,用戶請求資源時,就近返回節點上緩存的資源,而不需要每個用戶的請求都回您的源站獲取,避免網絡擁塞、緩解源站壓力,保證用戶訪問資源的速度和體驗
CDN節點
解決服務器端的“第一公裏”問題
緩解甚至消除了不同運營商之間互聯的瓶頸造成的影響
減輕了各省的出口帶寬壓力
緩解了骨幹網的壓力
優化了網上熱點內容的分布
傳統訪問過程
由上圖可見,用戶訪問未使用CDN緩存網站的過程爲:
1.用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址.
2.LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)
3.ROOT DNS将域名授权dns记录回应给 LocalDns
4.LocalDns得到域名的授權dns記錄後,繼續向域名授權dns查詢域名的ip地址
5.域名授权dns 查询域名记录后,回应给 LocalDns
6.LocalDns 将得到的域名ip地址,回应给 用户端
7.用戶得到域名ip地址後,訪問站點服務器
8.站點服務器應答請求,將內容返回給客戶端.
CDN訪問過程
通過上圖,我們可以了解到,使用了CDN緩存後的網站的訪問過程變爲:
1.用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址.
2.LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)
3.ROOT DNS将域名授权dns记录回应给 LocalDns
4.LocalDns得到域名的授權dns記錄後,繼續向域名授權dns查詢域名的ip地址
5.域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns
6.LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址
7.智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN節點ip地址回应给 LocalDns
8.LocalDns 将得到的域名ip地址,回应给 用户端
9.用戶得到域名ip地址後,訪問站點服務器
10.CDN節點服务器应答请求,将内容返回给客户端.(缓存服务器一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程)
通过以上的分析我们可以得到,为了实现对普通用户透明(使用缓存后用户客户端无需进行任何设置)访问,需要使用DNS(域名解析)来引导用户来访问Cache服务器,以实现透明的加速服务. 由于用户访问网站的第一步就是域名解析,所以通过修改dns来引导用户访问是最简单有效的方式.
对于普通的Internet用户,每个CDN節點就相当于一个放置在它周围的网站服务器. 通过对dns的接管,用户的请求被透明地指向离他最近的节点,节点中CDN服务器会像网站的原始服务器一样,响应用户的请求. 由于它离用户更近,因而响应时间必然更快.
从上面图中 虚线圈起来的那块,就是CDN层,这层是位于 用户端 和 站点服务器 之间.
智能調度DNS(比如f5的3DNS)
智能调度DNS是CDN服务中的关键系统.当用户访问加入CDN服务的网站时,域名解析请求将最终由 “智能调度DNS”负责处理。它通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户可以得到快速的服务。同时它需要与分布在各地的CDN節點保持通信,跟踪各节点的健康状态、容量等信息,确保将用户的请求分配到就近可用的节点上.
緩存功能服務
負載均衡設備(如lvs,F5的BIG/IP)
內容Cache服務器(如squid)
共享存儲
CNAME即别名( Canonical Name );可以用来把一个域名解析到另一个域名,当 DNS 系统在查询 CNAME 左面的名称的时候,都会转向 CNAME 右面的名称再进行查询,一直追踪到最后的 PTR 或 A 名称,成功查询后才会做出回应,否则失败。
例如,你有一台服務器上存放了很多資料,你使用docs.example.com
去訪問這些資源,但又希望通過documents.example.com
也能訪問到這些資源,那麽你就可以在您的DNS解析服務商添加一條CNAME記錄,將documents.example.com
指向docs.example.com
,添加該條CNAME記錄後,所有訪問documents.example.com
的請求都會被轉到docs.example.com
,獲得相同的內容。
接入CDN时,在CDN提供商控制台添加完加速域名后,您会得到一个CDN给您分配的CNAME域名, 您需要在您的DNS解析服务商添加CNAME记录,将自己的加速域名指向这个CNAME域名,这样该域名所有的请求才会都将转向CDN的节点,达到加速效果。
DNS即Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络可以识别的ip地址。人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。比如:上网时输入的www.baidu.com
會自動轉換成爲220.181.112.143
。
常見的DNS解析服務商有:阿裏雲解析,萬網解析,DNSPod,新網解析,Route53(AWS),Dyn,Cloudflare等。
回源host:回源host決定回源請求訪問到源站上的具體某個站點。
例子1:源站是域名源站爲
www.a.com
,回源host爲www.b.com
,那麽實際回源是請求到www.a.com
解析到的IP,對應的主機上的站點www.b.com
例子2:源站是IP源站爲
1.1.1.1
, 回源host为www.b.com
,那麽實際回源的是1.1.1.1
對應的主機上的站點www.b.com
指回源时使用的协议和客户端访问资源时的协议保持一致,即如果客户端使用 HTTPS 方式请求资源,当CDN節點上未缓存该资源时,节点会使用相同的 HTTPS 方式回源获取资源;同理如果客户端使用 HTTP 协议的请求,CDN節點回源时也使用HTTP协议。