CDN相关

CDN入门文档

快速入门 - CDN - 阿里云

流程

当您访问一个使用了CNAME和CDN服务的域名时,以下是整个流程的简化描述:

  1. 输入域名: 您在浏览器地址栏输入一个域名,比如www.example.com
  2. 查询DNS: 您的计算机会向DNS服务器查询这个域名对应的IP地址。
  3. CNAME解析: 如果www.example.com设置了一个CNAME记录,指向另一个域名(比如CDN提供商的域名),DNS服务器会返回这个CNAME记录。
  4. 再次查询DNS: 您的计算机接着会向DNS服务器查询CNAME记录指向的域名对应的IP地址。
  5. 获取CDN节点IP: CDN的DNS服务器会根据您的地理位置、网络状况和负载情况等,将请求重定向到最近的CDN节点。这个节点的IP地址会被返回给您的计算机。
  6. 请求CDN节点: 您的计算机使用得到的IP地址,向CDN节点发起请求。
  7. 内容分发: 如果请求的内容已经在CDN节点上缓存,那么节点会直接将内容发送给您的计算机。如果内容不在缓存中,CDN节点会向原始服务器请求内容,然后缓存该内容,并将其发送给您的计算机。
  8. 显示内容: 您的浏览器接收到内容后,将其渲染显示在屏幕上。

假设场景

假设您想访问一个在线购物网站 www.shopexample.com,该网站使用了CDN服务来加速全球用户的访问速度。

步骤详解

  1. 输入域名: 您在浏览器地址栏输入www.shopexample.com 并按下回车。
  2. 本地DNS查询: 您的电脑会首先查询本地DNS缓存,看是否有www.shopexample.com 的IP地址记录。如果没有,它会向您的ISP(互联网服务提供商)的DNS服务器发送一个DNS查询请求。
  3. CNAME记录解析: 如果www.shopexample.com 设置了CNAME记录,比如指向 cdn.shopexample.com,那么您的ISP的DNS服务器会返回这个CNAME记录。
  4. 查询CDN域名: 您的电脑接着会向DNS服务器查询cdn.shopexample.com 的IP地址。
  5. CDN智能解析: CDN的DNS服务(比如使用阿里云CDN)会根据您所在地的地理位置、网络状况和服务器负载情况,智能选择一个离您最近的CDN节点的IP地址,并返回给您的电脑。
  6. 请求CDN节点: 您的电脑使用这个IP地址,向选定的CDN节点发起HTTP请求。
  7. 内容提供
    1. 缓存情况:如果该CDN节点上已经缓存了 www.shopexample.com 的内容,它会直接将内容发送给您的电脑。
    2. 未缓存情况:如果内容不在CDN节点上,节点会向原始服务器 shopexample.com 请求内容,获取内容后缓存到节点上,并同时将内容发送给您的电脑。
  8. 浏览器渲染: 您的浏览器接收到从CDN节点发送过来的网页内容后,开始渲染页面,您就可以看到网站的内容了。

阿里云CDN是如何帮助加速的

当我们通过浏览器输入一个URL时,最终会在屏幕上显示一个网页、一段视频、一首音乐或一张图片。这一过程背后涉及了多种软件和硬件的解析与转发操作,实际上相当复杂。接下来,本文将通过一个简单的请求示例,介绍阿里云CDN是如何在这个请求流程中起到加速作用的。

一、基本的请求过程

二、引入阿里云CDN的请求过程

阿里云CDN可视作一个庞大的缓存服务,该服务在网络拓扑逻辑中位于服务器和用户之间(图中紫色部分就是引入的阿里云CDN)。当用户发起请求并到达阿里云CDN时,系统将首先查询是否存在对应的缓存图片。如果缓存中存在该图片,则将直接返回缓存的图片给浏览器,而无需访问服务器;若缓存中不存在对应的图片,则会通过阿里云CDN向服务器发起请求,获取到图片后返回给用户,并且将其存储在阿里云CDN中,以便于下一个访问该图片的请求能够快速获取。

本地搭建cdn模拟访问过程

### DNS 解析流程

1. 用户访问 web.cdn.test

2. CNAME解析到 web.cdn.test.c.lanpangzi

3. 需要解析 .c.lanpangzi 这个域

4. 通过 NS 记录找到 CDN 服务商的 DNS 服务器

  1. CDN DNS 服务器返回最优节点 IP

# 在 lanpangzi 域的 DNS 配置中

c.lanpangzi. IN NS ns1.cdnprovider.com.

c.lanpangzi. IN NS ns2.cdnprovider.com.

搭建dns服务器

搭建前

搭建后着测试下修改后的网络访问有没有问题

搭建回源服务器和cdn边缘节点

接着我们来快速搭建下回源服务器和cdn的边缘节点,这里我是直接借用了nginx来进行搭建,因为nginx可以用作静态资源服务器,所以可以直接启动一个nginx容器把它作为源服务器,提供图片资源的访问。 并且nginx也能提供缓存服务,这也刚好符合边缘节点缓存资源的需求。由于边缘节点需要回源到源服务器,但是容器的ip又是不固定的,所以这里我直接用docker-compose对这两个容器进行了编排,这样在写nginx配置文件的时候,便可以用容器名代替ip了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值