网站的访问速度受到很多因素影响。服务器的带宽、服务器的 cpu、内存等硬件配置、网站的代码质量、css 和 js 文件是否合并成了一个请求、用户的访问地理位置、用户的线路、数据库语句是否高效等等,影响一个网站速度的因素非常多,需要针对每一项因素做优化。
如果自己逐一去优化网站中每个性能瓶颈,那么将耗费大量的时间。cdn 服务将整套服务打包,将全站的访问速度整体提升一个量级,不再需要你再做耗时耗力的优化工作,能够节约大量时间去做推广。
- 添加域名
进入域名管理,点击添加域名,如下图:
WordPress 使用阿里云 CDN详细 教程 加速效果明显
「加速域名」输入你要加速的域名,一般是你的二级域名:如:www.domain.com。
「业务类型」选择「图片小文件」。
「源站信息」选择「IP」,输入框输入自己源站的 IP 地址。
「端口」,如果源站是 http 的,则选择 80 端口,如果源站是 https 的,需要选择 443 端口,否则会导致 cdn 不断的 301 重定向,导致网站无法访问。
添加完成后,界面提示如下:
https://ucc.alicdn.com/pic/developer-ecology/0dc6f00cd3944560a261bc329add4cb3.png
WordPress 使用阿里云 CDN详细 教程 加速效果明显
配置 CNAME
进入域名管理,复制域名的 CNAME 值。
WordPress 使用阿里云 CDN详细 教程 加速效果明显
进入云解析控制台,选择对应的域名,添加一条 CNAME 记录。
WordPress 使用阿里云 CDN详细 教程 加速效果明显
https 配置
如果源站是 https 的,还需要在 cdn 上进行 https 配置。
域名管理控制台,选择对应的域名,选择「HTTPS 配置」。
https://ucc.alicdn.com/pic/developer-ecology/e220337a664d4ce4a74e33d6cd49f191.png
WordPress 使用阿里云 CDN详细 教程 加速效果明显
勾选「HTTPS 安全加速」,如果你的 https 证书是在阿里云购买的,在「证书类型」选项,选择「云盾」,系统会自动将证书导入。关于如何购买阿里云 SSL 证书,可以参考阿里云免费申请 SSL 证书。因为我是阿里云购买的,所以直接选择了云盾。
「强制跳转」处,勾选 「HTTP -> HTTPS」。
勾选「HTTP/2」,勾选「TLS 版本控制」-> 「TLSv 1.3」。
缓存配置
缓存配置分为目录和文件后缀名 2 种方式,权重分为 1~99 等级,99 最大,1 最小,权重大会优先缓存。如果控制台的缓存不配置,阿里云 cdn 默认缓存的时间是:(当前时间 – lastModified) * 0.1,取值范围为:10s~3600s 之间。
WordPress 使用阿里云 CDN详细 教程 加速效果明显
配置 Cache-Control
Cache-Control 是什么?Cache-Control 通用消息头字段,被用在 http 请求和响应中,通过指定指令来实现缓存机制。
阿里云的 cdn 也是通过这个字段来判断是否缓存的,如果你的服务器容器的 Cache-Control 为 no-cache,那么阿里云 cdn 是无法进行缓存的。这个字段可以通过 chrome 浏览器的 Network 查看,如下图:
WordPress 使用阿里云 CDN详细 教程 加速效果明显
配置 Cache-Control 有 2 种方法,阿里云 cdn 控制台配置 HTTP 头、源站配置 Cache-Control:
第 1 种方法:阿里云 cdn 配置 HTTP 头,在阿里云 cdn 控制台进入「缓存配置」->「HTTP 头」添加参数:Cache-Control:public。
WordPress 使用阿里云 CDN详细 教程 加速效果明显
第 2 种方法:源站服务器添加 Cache-Control 配置,这里以 nginx 为例,打开 nginx 的 conf 配置文件,在 server 节点下添加如下代码:
add_header Cache-Control public;
WordPress 使用阿里云 CDN详细 教程 加速效果明显
关于阿里云 cdn 详细的解释可以参考配置缓存过期时间。
性能优化
性能优化主要勾选阿里云 cdn 控制台的 3 个选项。
https://ucc.alicdn.com/pic/developer-ecology/89bee0487c844f9fafb56e9378e1fbd5.png
WordPress 使用阿里云 CDN详细 教程 加速效果明显
页面优化,主要是去除 HTML 页面页面冗余内容,如注释以及重复的空白符,节省带宽,加快访问速度。
智能压缩,对静态文件类型进行 Gzip 压缩, 有效减少用户传输内容大小。
Brotli 压缩,Google 在 2015 年 9 月推出了无损压缩算法 Brotli。Brotli 通过变种的 LZ77 算法、Huffman 编码以及二阶文本建模等方式进行数据压缩,与其他压缩算法相比,它有着更高的压缩效率。开启后,查看 css、js 的 content-encoding 值为 br,就说明启用了 Brotli 压缩。
https://ucc.alicdn.com/pic/developer-ecology/e3b961e80fd34c79b10a656123e04f47.png
WordPress 使用阿里云 CDN详细 教程 加速效果明显
如何查看是否命中 CDN 缓存
首先在 dos 界面 ping 域名,查看返回信息,如果返回后缀为:w.kunlungr.com 的域名信息,说明 CNAME 的配置生效了。但是这并不能说明网站已经命中 cdn 缓存。
查看网站是否命中 cdn 缓存的方法。打开 Chrome 浏览器的 Network 选项卡,刷新网站,找到 Response Headers 的 x-cache 属性,如果为 HIT 则表明命中缓存,如果为 MISS 则表明未命中缓存。
WordPress 使用阿里云 CDN详细 教程 加速效果明显
刷新缓存
如果在源站更新了内容,想要立刻生效,可以使用「刷新预热」功能。
WordPress 使用阿里云 CDN详细 教程 加速效果明显
效果如何?
我们花了大量的时间和精力做了 cdn 的配置和优化,那么效果到底如何呢?有没有可以量化的数据来验证呢?下面是我的统计数据图。
未配置 cdn 前的统计时间,平均时间大约为 1500 ms。
WordPress 使用阿里云 CDN详细 教程 加速效果明显
https://ucc.alicdn.com/pic/developer-ecology/c28ccc15fea746fd9e95dea0283ee9a4.png
启用 cdn 后,时间降低为 130 ms 左右。
WordPress 使用阿里云 CDN详细 教程 加速效果明显
访问时间直接提升了 10 倍以上,提升效果还是非常明显的。
CDN 的收费
阿里云 CDN 的收费非常便宜,下行流量 1 年 100G,价格仅为 18 元,静态 https 请求数 1 年 1000 万次,费用仅为 36 元。