CDN

CDN的全称为“Content Delivery Network”,及,内容分发网络。

它是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。

CDN应用广泛,支持多种行业、多种场景内容加速,例如:图片小文件、大文件下载、视音频点播、直播流媒体、全站加速、安全加速。

CDN工作原理

CDN的工作原理就是将源站的资源缓存到位于全国各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、分担源站压力,保证用户访问资源的速度和体验
图片

图片

借用阿里云官网的例子,来简单介绍CDN的工作原理。假设通过CDN加速的域名为www.a.com,接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下:

  1. 当终端用户(北京)向www.a.com下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
  2. LDNS检查缓存中是否有www.a.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
  3. 当授权DNS解析www.a.com时,返回域名CNAME www.a.tbcdn.com对应IP地址。
  4. 域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。
  5. LDNS获取DNS返回的解析IP地址。
  6. 用户获取解析IP地址。
  7. 用户向获取的IP地址发起对该资源的访问请求。

从这个例子可以了解到:

  1. CDN的加速资源是跟域名绑定的。
  2. 通过域名访问资源,首先是通过DNS分查找离用户最近的CDN节点(边缘服务器)的IP
  3. 通过IP访问实际资源时,如果CDN上并没有缓存资源,则会到源站请求资源,并缓存到CDN节点上,这样,用户下一次访问时,该CDN节点就会有对应资源的缓存了。

简单讲,CDN就是通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容。

CDN主要解决这么些问题:

为什么要用CDN?

如果你在经营一家网站,那你应该知道几点因素是你制胜的关键:

另外,你的网站必须能在复杂的网络环境下运行,考虑到全球的用户访问体验。你的网站也会随着使用越来越多的对象(如图片、帧、CSS及APIs)和形形色色的动作(分享、跟踪)而系统逐渐庞大。所以,系统变慢带来用户的流失。

Google及其它网站的研究表明,一个网站每慢一秒钟,就会丢失许多访客,甚至这些访客永远不会再次光顾这些网站。可以想像,如果网站是你的盈利渠道或是品牌窗口,那么网站速度慢将是一个致命的打击。

这就是你使用CDN的第一个也是最重要的原因:为了加速网站的访问

CDN与传统网站的区别

CDN主要功能是在不同的地点缓存内容,通过负载均衡技术,将用户的请求定向到最合适的缓存服务器上去获取内容,比如说,是北京的用户,我们让他访问北京的节点,深圳的用户,我们让他访问深圳的节点。通过就近访问,加速用户对网站的访问。解决Internet网络拥堵状况,提高用户访问网络的响应速度。

反向代理

幕后的“交通警察”

反向代理 就像一个位于服务器和客户端之间的“交通警察”,它接收来自客户端的请求,然后根据一定的规则将请求转发给内部网络上的服务器。对于客户端来说,它只知道反向代理的IP地址,并不知道在它背后的服务器集群的存在。

反向代理的工作原理
  1. 接收请求: 客户端向反向代理服务器发送请求。
  2. 转发请求: 反向代理服务器根据配置的规则,将请求转发给相应的后端服务器。
  3. 接收响应: 后端服务器处理请求后,将响应返回给反向代理服务器。
  4. 返回响应: 反向代理服务器将收到的响应再转发给客户端。

反向代理的作用

反向代理的常见应用场景
常用的反向代理软件
形象比喻

反向代理和CDN的异同

工作原理的不同

反向代理
反向代理服务器是位于用户和原始服务器之间的中间服务器。它主要的任务是代替原始服务器接收用户请求,然后将请求转发给原始服务器处理,原始服务器返回数据后,反向代理再将数据返回给用户。反向代理一般放置在与原始服务器比较接近的地方(通常是同一个数据中心),它不存储数据,只是作为请求的中转站。

工作机制:

主要用途的不同
缓存机制的不同
部署位置的不同