转载 CDN工作原理 (cname引导)
原文链接:https://10z4.com/198.html
传统的网络访问形式为:
由上图可见,用户访问未使用 CDN 缓存网站的过程为:
用户向浏览器提供要访问的域名;
浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的 IP 地址;
浏览器使用所得到的 IP 地址,域名的服务主机发出数据访问请求;
浏览器根据域名主机返回的数据显示网页的内容。
通过以上四个步骤,浏览器完成从用户处接收用户要访问的域名到从域名服务主机处获取数据的整个过程。CDN 网络是在用户和服务器之间增加 Cache 层,如何将用户的请求引导到 Cache 上获得源服务器的数据,主要是通过接管 DNS 实现,下面让我们看看访问使用 CDN 缓存后的网站的过程:
CDN 客户使用 CDN 的方法:
对于 CDN 客户来说,不需要改动网站架构,只需要修改自己的 DNS 解析,设置一个 CNAME 指向 CDN 服务商即可。原理在下面会解释
通过上图,我们可以了解到,使用了CDN 缓存后的网站的访问过程变为:
用户向浏览器提供要访问的域名;
浏览器调用域名解析库对域名进行解析,由于 CDN 对域名解析过程进行了调整,所以解析函数库得到的是该域名对应的 CNAME 记录(由于现在已经是使用了 CDN 服务,CNAME 为 CDN 服务商域名),为了得到实际 IP 地址,浏览器需要再次对获得的 CNAME 域名进行解析以得到实际的 IP 地址;在此过程中,使用的全局负载均衡 DNS 解析,如根据地理位置信息解析对应的 IP 地址,使得用户能就近访问。(CDN 服务来提供最近的机器)
此次解析得到 CDN 缓存服务器的 IP 地址,浏览器在得到实际的 IP 地址以后,向缓存服务器发出访问请求;
缓存服务器根据浏览器提供的要访问的域名,通过 Cache 内部专用 DNS 解析得到此域名的实际 IP 地址,再由缓存服务器向此实际 IP 地址提交访问请求;
缓存服务器从实际 IP 地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程;
客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
概念解析:
CNAME(Canonical Name)指别名记录也被称为规范名字,CNAME 可以理解为对域名设置别名。比如一个域名 www.domain.com,设置一个 CNAME 指向它,由于 www.domain.com 与一个 ip 进行绑定,如果设置多个 CNAME 指向它,以后修改 CNAME 指向的服务器时,只需要修改一个 www.domain.com 对应的 ip 即可。详细可以参考DNS(域名系统)