Cloudflare优化指南(缓存篇)

Cloudflare优化指南(缓存篇)

在我们遇到DDoS攻击,或是想要为网站的安全性“添砖加瓦”的时候,第一时间就会想到为网站接入Cloudflare。

然而,由于中国大陆地区的运营商有时会对Cloudflare的CDN节点进行谜之屏蔽的操作,而且免费版的CDN服务经常会分配到美国的节点,此时你再次打开测速网站,其结果很有可能会是下面这样↓

难道中国大陆地区真的不适合接入Cloudflare吗?

实则不然,其问题极大可能是缓存没有设置好。

我们需要先了解一下原理。

原理

缓存静态和动态内容 | 它是如何工作的? | Cloudflare

根据上面查阅到的官方文档可以分析,当我们的网站接入Cloudflare并开启“小黄云”时,Cloudflare只会对你的网站的JavaScript、CSS 文件等静态文件进行缓存,并不会对你的网站的静态HTML页面缓存。

你也可以按F12打开开发者工具,在“网络”一栏里观察Cf-Cache-Status的响应标头,若如图片一样显示的是DYNAMIC,即代表动态缓存,就如上文提到的一样,此时Cloudflare并不会对你的网站的静态HTML页面缓存。如果出现其他的字样,请对照下面的描述来分析。

Cf-Cache-Status:HIT此时你的文件已经命中缓存。若有用户访问你的网站会直接由CDN服务器响应,不会回源至源服务器。

Cf-Cache-Status:MISSCloudflare已经在CDN服务器中查找了你所请求的文件,但是并没有找到,这时候CDN服务器将会回源至你的服务器中获取该文件,当下次请求时该文件就会显示HIT。

Cf-Cache-Status: BYPASSCloudflare已经被用户设置不缓存该文件,请求将直接回源至源服务器。

Cf-Cache-Status:EXPIRED文件的缓存期限已经过期,请求将会再度回源至网站源服务器进行获取文件,当下次请求时该文件就会显示HIT。

这么来说的话,当访客想要访问你的某一页面,若未配置缓存其请求会通过CDN节点直接回源到你的源服务器,而不是在CDN节点返回已经缓存后的文件。这样一来的话,访问请求的距离会大大地增加,而且会极大地拖慢速度,尤其是针对中国大陆地区。

这时候,我们就要稍微修改一下页面规则,使Cloudflare对HTML页面进行缓存。

Cloudflare的缓存原理其实很简单,当用户首次请求你的网站某个页面时,请求会到达最近的 Cloudflare 边缘节点。该节点会向源服务器拉取数据,返回给用户的同时在边缘节点存储副本。

紧接着,当有另一位用户再次访问此页面的时候(缓存没有过期情况下),Cloudflare就会直接返回在边缘节点缓存的副本,从而无需经过你的源服务器。这样就可以有效地节省响应时间了。

操作

登录你的Cloudflare账户,进入你的域名,在边栏的规则选项中,找到页面规则子选项卡并进入。

Free计划默认页面规则只有三条,所以我们需要对WordPress进行分析来寻找最优解。需要特别注意的是wp-login和 wp-admin两个页面不能缓存,否则的话别人可以在未经你授权的境况下,使用CloudflareCDN的缓存页面直接进入到你的后台。其余页面就正常缓存即可。

由此,我们就可以得到以下配置方法:

请将上面的所有的www.lp-gardenwalk.top替换成你的域名。

这里尤其注意一下,页面规则的顺序需要和上图一样,因为Cloudflare默认是从第一条规则顺延到第二条规则,之后才是第三条规则。否则的话将会出现预料不到的错误。

但是此条规则有一条缺点,Cloudflare会自动对WordPress的文章预览页面进行缓存,如果遇到这个问题,请在边栏的缓存子选项卡的配置中下拉,找到开发模式打开即可。不要忘了在文章编辑完成后关闭开发模式。

在完成上面的操作后,你可以按F12打开开发者工具,在“网络”一栏里观察Cf-Cache-Status的响应标头,多刷新几次,若如图片一样显示的是HIT,即代表设置成功。

这样的话,你的网站的访问速度就会提升了不少。

相关推荐

地球上植物的种类有哪些?
你们的365还进得去吗

地球上植物的种类有哪些?

📅 08-18 👁️ 8477
南非世界杯球迷安全帽
365娱乐游戏是什么

南非世界杯球迷安全帽

📅 08-29 👁️ 5308
全国的行政区域域名:概览与探索
365娱乐游戏是什么

全国的行政区域域名:概览与探索

📅 07-07 👁️ 1648