江湖夜雨十年灯

使用 Cloudflare CDN 加速和保护自己的网站

李二花 / 2022-12-25


背景

我的好多博客(包括个人在用的博客,archived 的博客,LaTeX 的 wiki 等等)都是部署到 AWS 的 S3 或者阿里云的 OSS 上的。

这些博客或者文档大多都是为了自己便查用的,所以大多的图片文件都是直接使用了 picgo 图床工具通过配置的 github 生成对应的地址,直接用在文档里,并且我的博客生成脚本不在我的工作机器上,而是在云服务器上,所以使用图床工具直接生成链接也就更方便,省下了我在本地处理好图片,然后上传到云服务器的这个过程。

但是有个问题就是,因为 GFW 对 github 的限制,导致图片在国内网络环境访问越来越受限(我自己可以使用科学上网工具,但是有时候有向外分享的情况,图片的加载就成了问题)。

为了解决这个问题,我决定不再把图片上传图床,而是直接放到 static 文件夹同步到 S3,可以通过博客域名访问,但是这就涉及到我需要考虑的第二个问题,CDN 的问题,如果要将图片直接放到文档中,为了防止图片请求量过大,导致我的 S3 或者 OSS 的请求的出网流量过多,造成流量费用的浪费,我需要配置下 CDN 来节约下成本。

对于 S3 我可以直接配置 CDN 加速,并且就算配置域名也没有问题,国外环境对此没有限制,但是有的文档我是部署在阿里云 OSS 的港区的,虽然港区对于域名的配置没有限制(没有做备案的强制要求),但是如果我想配置国区的 CDN,必须要对域名备案进行检查的(备案太麻烦了,我目前只有一个备案域名,我博客使用的 lierhua.top 没有备案)。

所以对于 OSS 要进行国内 CDN 加速的话,我就只能用其他的办法了,于是就引出了这篇文章要讲的东西,因为之前在工作中也用过 cloudflare, 所以就直接拿他的免费个人版来用,对网站资源进行加速,同时也可以保护自己的网站。

加速配置

对于 cloudflare 的详细介绍,就不在这里展开了,如果有兴趣,可以访问他们的官方网站查看.

通过使用 Cloudflare CDN 服务提供的全球节点,一方面可以提高网站响应速度和性能(付费版更明显),节省源站资源;另一方面也可以保护站点抵御攻击,保证网站长期稳定在线。

添加站点

cloudflare 的注册特别简单,只需要点击 signup, 然后输入邮箱和密码即可(我喜欢这些只需要邮箱就可以注册的公司,不喜欢那些还需要电话号码的,当然 telegram 是个例外,相比于 telegram 的优点,这个缺憾我可以包容)。

然后点击最上边的「添加站点」即可增加自己想要进行 CDN 加速的站点:

我以一个域名 zhuge.live 为例,把整个流程过一遍(这个域名当时是给我的一个学弟申请的,他之前写微信公众号,写了很多篇,我之前答应过给他集结在一块儿的,因此就有了「诸葛实况」这个文章集)。

下一步之后,我们选择那个免费的版本就行,对于个人版而言,完全够用了,当然如果你想支持 cloudflare 也可以付费。

点击继续后,这时 Cloudflare 会自动扫描域名已有的 DNS 解析记录,如果扫描到的话,会显示在下面。没有或者显示不正确,则需要我们自己添加设置。

第一次扫描,没有扫描到任何的记录,于是我回阿里云的域名处,增加了一个 www 的 CNAME 记录。

同时在 cloudflare 重新添加了下记录,如下:

我们看到这个时候已经有记录显示出来了,黄色就表示已经接入 CDN 了,我们接下来点击继续,继续下一步,去配置我们的 DNS 地址。

我们按照流程的要求,找到我们这个域名的 whois 方,然后去对应的平台,修改对应的 DNS 的配置,因为这个 zhuge.live 是我在阿里云申请的,因此需要到阿里云里修改这个域名的 DNS 配置,具体涉及到以下内容, 我们需要从上一步,cloudflare 给定的 DNS 地址,然后去到阿里云配置上,当然如果你使用的是 godaddy(我部署在 S3 的域名配置基本都是在 godaddy 申请的),也有自己的流程,可以根据网站 wiki 获取到方式。

至此,配置好后,点击「完成,检查服务名」,就会到下面一步,我们需要点击如何「检查服务器名称」即可

之后,我们会收到 cloudflare 一封邮件,告知我们已经将我们的 zhuge.live 添加到 free 计划中,状态为活跃。

到此为止,我们给我们的网站添加 CDN 支持就完成了,接下来,我们看看他对应的看板和效果.

查看加速看板

由于 zhuge.live 刚添加,所以没有什么流量,我们看下 lierhua.top 这个域名的缓存情况吧

可以看到过去 24 小时的总请求数还有被 cloudflare 缓存的请求数。

常见问题

1.修改域名服务器后,Cloudflare 检测不到

DNS 生效是需要一定时间的,确认自己的修改无误后,耐心等待一段时间,你会收到一封电子邮件,它的名称可能如下:已将 domain.com 添加到 Cloudflare xxx计划中

2.开启 Cloudflare CDN 后网站访问速度反而变慢了很多?

Cloudflare 的 CDN 节点大多在国外(免费版),国内用户访问速度不稳定,对于国外访问速度很快。 比较适合主要面向国外访客的网站;或者不在意速度,想节省源站资源的情况;又或者主要想使用它的保护功能的用户;


参考: