阿里云CDN

发布于 2020-02-27  308 次阅读


CDN的全称是Content Delivery Network,即内容分发网络。CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
纵观整个宽带服务的价值链,内容提供商和用户位于整个价值链的两端,中间依靠网络服务提供商将其串接起来。随着互联网工业的成熟和商业模式的变革,在这条价值链上的角色越来越多也越来越细分。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。


使用阿里云 CDN 教程

添加域名
进入域名管理,点击添加域名,如下图:

9b8fd0290c75431e1ae14c6ac49d62236891afab

· 「加速域名」输入你要加速的域名,一般是你的二级域名:如:www.domain.com。
· 「业务类型」选择「图片小文件」。
· 「源站信息」选择「IP」,输入框输入自己源站的 IP 地址。
· 「端口」,如果源站是 http 的,则选择 80 端口;如果源站是 https 的,需要选择 443 端口,否则会导致 cdn 不断301 重定向,导致网站无法访问。
添加完成后,界面提示如下:

94bf30c802a4832d1c6586575be7be997ac6a46d

配置CNAME

· 进入域名管理,复制域名的 CNAME 值。

b8c359d6015a950c81b99506a24e6a61bac4330c

· 进入云解析控制台,选择对应的域名,添加一条 CNAME 记录。

2020-02-09-106

配置https

如果源站是 https 的,还需要在 cdn 上进行 https 配置。
域名管理控制台,选择对应的域名,选择「HTTPS 配置」。

d5e88948058b5890774b30bdfb6ca9a7bc535067

· 勾选「HTTPS 安全加速」,如果你的 https 证书是在阿里云购买的,在「证书类型」选项,选择「云盾」,系统会自动将证书导入。关于如何购买阿里云 SSL 证书,可以参考阿里云免费申请SSL 证书。因为我是阿里云购买的,所以直接选择了云盾。
·「强制跳转」处,勾选 「HTTP -> HTTPS」。
· 勾选「HTTP/2」,勾选「TLS 版本控制」-> 「TLSv 1.3」。

缓存配置

缓存配置分为目录和文件后缀名 2 种方式,权重分为 1~99 等级,99 最大,1 最小,权重大会优先缓存。如果控制台的缓存不配置,阿里云 cdn 默认缓存的时间是:(当前时间 - lastModified) * 0.1,取值范围为:10s~3600s 之间。
<img title="阿里" src=""阿里" />

下图是示例站点配置方案,可以做参考:

621b89b7863791ec14deaa4b4b55908070a49eab

示例配置了根目录 / 的 7 天过期时间,是因为示例网站所有结构都是 1 级目录结构(www.domain.com/ur1/),无法根据 url 目录详细区分,如果你的站点可以区分 url 目录结构,可以配置的更加详细。
动态内容无需缓存,所以示例网站对 wp-admin 目录缓存时间设置为 0。
控制台配置的缓存时间并不是绝对时间,假设你的 js 缓存时间是 3 个月,但是你的站点访问量非常少,cdn 会提前将内容过期,直到下次重新访问,缓存才会重新生效。

配置 Cache-Control

Cache-Control 是什么?Cache-Control 通用消息头字段,被用在 http 请求和响应中,通过指定指令来实现缓存机制。阿里云的 cdn 也是通过这个字段来判断是否缓存的,如果你的服务器容器的 Cache-Control 为 no-cache,那么阿里云 cdn 是无法进行缓存的。这个字段可以通过 chrome 浏览器的 Network 查看,如下图:

45fb2b955f46e591badc546c82798f396a5e428e

配置 cache - control 有 2 种方法,阿里云 cdn 控制台配置 HTTP 头、源站配置 Cache-Control。

· 第 1 种方法:阿里云 cdn 配置 HTTP 头,在阿里云 cdn 控制台进入「缓存配置」->「HTTP 头」添加参数:Cache-Control:public。

04612ec38eb4268741505738c544c98fa172d10a

· 第 2 种方法:源站服务器添加 Cache-Control 配置,这里以 nginx 为例,打开 nginx 的 conf 配置文件,在 server 节点下添加如下代码:

add_header Cache-Control public;

a4d14bb716aeeb9fb5984b6c725438525ae823e7

关于阿里云 cdn 详细的解释可以参考配置缓存过期时间。

性能优化

性能优化主要勾选阿里云 cdn 控制台的 3 个选项。

755b0e08f6ff18ff49b21b91627bc150ec48e5c9

· 页面优化,主要是去除 HTML 页面页面冗余内容,如注释以及重复的空白符,节省带宽,加快访问速度。
· 智能压缩,对静态文件类型进行 Gzip 压缩, 有效减少用户传输内容大小。
· Brotli 压缩,Google 在 2015 年 9 月推出了无损压缩算法 Brotli。Brotli 通过变种的 LZ77 算法、Huffman 编码以及二阶文本建模等方式进行数据压缩,与其他压缩算法相比,它有着更高的压缩效率。开启后,查看 css、js 的 content-encoding 值为 br,就说明启用了 Brotli 压缩。

c8620985d75453ea6720f38f75f4be919a42b8f8

如何查看是否命中 CDN 缓存

首先在 dos 界面 ping 域名,查看返回信息,如果返回后缀为:w.kunlungr.com 的域名信息,说明 CNAME 的配置生效了。但是这并不能说明网站已经命中 cdn 缓存。

查看网站是否命中 cdn 缓存的方法。打开 Chrome 浏览器的 Network 选项卡,刷新网站,找到 Response Headers 的 x-cache 属性,如果为 HIT 则表明命中缓存,如果为 MISS 则表明未命中缓存。

0d3fe1c9b4beeab6f67eca68adbc4d65e0e341e0

刷新缓存

如果在源站更新了内容,想要立刻生效,可以使用「刷新预热」功能。

49b77818db1b07f70e84459131818d916c166c94

CDN 的收费

阿里云 CDN 的收费非常便宜,下行流量 1 年 100G,价格仅为 18 元,静态 https 请求数 1 年 1000 万次,费用仅为 36 元。