使用CDN加速你的网站

前言

由于我的博客部署在Vercel等Serverless平台上,此类平台对于国内来说访问速度较慢,有的地区甚至会出现无法访问的情况,因此我打算使用CDN来加速网站,奖网站分发到国内节点,同时还能通过缓存功能减少流量消耗并加快访问速度。

注意:大部分国内 CDN 使用需要域名进行备案。

什么是CDN

CDN英文全称Content Delivery Network,中文翻译即为内容分发网络。它是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。
简而言之就是,厂商在全国各地都有很多很多的服务器,每一个服务器我们称之为节点,很多的节点组成了CDN。

CDN的原理

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

在用户与源站之间加了一层CDN,用户先访问 CDN的节点,CDN节点再去源站拿取内容,当用户第二次访问的时候就会直接返回节点上缓存的内容,由于节点离用户近,所以用户拿到资源的速度就会缩短,访问也就变快了。

访问优先级
通常情况下,中国内地的网络质量有以下特点:

  • 用户访问同运营商的 IP 地址过程中的网络质量优于访问跨运营商的 IP 地址过程中的网络质量。
  • 用户访问同省运营商的 IP 地址过程中的网络质量优于访问跨省运营商的 IP 地址过程中的网络质量。
  • 用户访问跨省同运营商的 IP 地址过程中的网络质量优于访问同省跨运营商的 IP 地址过程中的网络质量。

如何使用CDN

因为又拍云提供免费的每月10G云存储+15G流量,所以本文以又拍云为例进行说明。

加入又拍云

又拍云的免费流向需要你先加入又拍云联盟才可以获取:

申请规则

首先注册又拍云,实名认证成功之后再申请加入又拍云联盟

然后按照网页上的要求,在网站底部加上又拍云的的标识,填写相关信息,提交申请。

申请页面

如果你是 Butterfly 主题的话,可以直接在主题的配置文件找到 custom_text 并加入以下代码

1
custom_text: <a href="https://www.upyun.com/?utm_source=lianmeng&utm_medium=referral" target="_blank" rel="noopener nofollow"><img style="position:relative;top:-2.5px;" src="https://cdn.jsdelivr.net/gh/caibhh/CDN/img/blog/%E5%8F%88%E6%8B%8D%E4%BA%91_logo5.webp" align="absmiddle" width="60px" height="30px">提供加速服务</a>

对于 Anzhiyu 主题,可以参考 在网页上加入自定义徽标 文章,修改配置文件,示例如下

1
2
3
4
5
6
bdageitem:
enable: true
list:
- link: https://www.upyun.com/?utm_source=lianmeng&utm_medium=referral
shields: https://img.shields.io/badge/CDN-%E5%8F%88%E6%8B%8D%E4%BA%91-00b6ff?style=flat&logo=data:image/png;base64,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
message: 本站由又拍云提供CDN加速/云存储服务

数天过后会有邮件通知你成功加入又拍云联盟,67¥ / 年的代金券也发放下来了。

开启CDN

进入 CDN 服务管理,点击创建服务

创建服务

如果你部署了多条线路,可以像我一样填写

创建服务2

最后点击创建,CDN服务就创建好了。然后按照提供的域名,将你的加速域名解析到此。例如我需要加速国内,而境外直接访问源站,可以这样解析:

解析

然后你需要在SSL 证书服务申请SSL证书,然后在CDN服务管理中绑定证书,或者你也可以直接上传已有证书。推荐直接在又拍云进行申请,方便管理也支持自动续签。

点击申购证书-Let’s Encrypt,然后直接创建订单即可。然后在购买列表补全订单中的域名即可(需要创建玩cdn服务后先等待审核完毕)

SSL

证书申请成功后,回到CDN配置,在HTTPS-HTTPS配置中绑定证书即可,现在你的网址已经可以访问了。

配置CDN

这里给出我个人的配置,大家可以根据自己的需求进行调整。

缓存控制

  • 全局缓存2小时(需要网站即时更新可不开启)
  • 开启了分段缓存和离线模式
模板资源路径缓存时间
字体资源/*.(ttf,otf,woff,woff2,eot,sfnt)7 天
图片文件/*.(jpg,jpeg,png,bmp,gif,psd,ico,tga,imb,tiff)7 天
音视频文件/*.(wav,mp3,wmv,rmi,aac,mp4,rmvb,mkv,avi,flv,swf,rm,mov,movie,qt)7 天

性能优化

  • 智能压缩(GZip 和 Brotli 我都开启了,等级都为 3 级)但是要注意,当客户端同时支持 Gzip 和 Brotli 算法的情况下,Brotli 的优先级高于 Gzip。
  • 页面压缩,开启
  • 重定向跟随,开启

HTTPS

  • TLS 1.3,开启
  • 最低 TLS 版本,我选的 1.0
  • HTTP/2,开启

访问控制(重要)

  • IP 黑白名单,建议大家把以下 IP 都加入到黑名单

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    117.136.14.181
    117.183.0.241
    171.106.203.19
    220.173.125.83
    222.217.145.185
    113.14.130.128
    222.83.150.92
    113.14.130.19
    113.14.130.73
    113.57.53.37
  • IP 访问限制,开启

    点击添加限制规则,资源路径:/*,限制策略:100 - 200 禁止 600 秒,200 - 500 禁止 3600 秒,500 以上 86400 秒

  • CC 防护,开启

    URI 匹配规则:/*,访问频率阈值:200 次,智能防护

  • WAF 保护,开启