标签归档:Cloudflare教程

PICGO+ Cloudflare R2 存储搭建图床教程

Cloudflare R2存储允许开发人员存储大量非结构化数据,而无需支付与典型云存储服务相关的昂贵出口带宽费用。也算是带宽联盟一员。类似于阿里云国际的OSS免费5G空间,流量收费,但是使用自定义域名套用Cloudflare的cdn就流量免费,Cloudflare自己的R2存储流量不收费,收费的是存储空间和请求次数。A类操作和B类操作分开收费,上传属于A类操作,下载和访问属于B类操作。

免费 付费 - 费率
贮存 10 GB/月 每月 0.015 美元/GB
A 类操作 每月 100 万个请求 4.50 美元/百万请求
B 类操作 每月 1000 万个请求 0.36 美元/百万请求

也就是说,可以免费存储10G的文件,每个月可以上传100万次,访问1000万次,假如用作图床,一般是用不到这个量级的。并且可以绑定自定义域名,套用页面规则以后可以设置浏览器缓存,这样可以减少一些请求次数并且可以防止被人刷请求次数导致一晚上过去,房子就不属于自己了。不自定义域名也是可以的,也就是说你甚至不需要拥有域名就可以拥有一个图床。

存储也是比较便宜的,超出10G以后,1G文件基本上每个月只要1毛人民币。当然和B2那种5刀一个月1T是没法比的,用作图床的话还有种阿里云国际的OSS的40G年付包也是比较有性价比,这里扯远了。下面详细说一下怎么白嫖R2做图床。

本文的图就放在R2上,只不过域名是自定义的。

开通R2

首先当然是拥有一个Cloudflare账号,并且点击右上角的语言设置中文。

第一步当然是开通R2,侧边栏找到R2然后点击开通。这里可以绑定支持外币支付的卡,或者直接绑定paypal,中国区的paypal也是可以的。

a2ca200d6ce03e2da268668f9631b961.webp

第二步是创建存储桶,可以自己选取位置,不建议无脑选亚太地区,亚太地区虽然近但是国际访问速度受限,我这里选择北美西部。

9e605ba44ada44fe9731c1be22e111f8.webp

第三步是创建完存储桶后,点进就到存储桶的设置,然后找到【R2.dev 子域】,将其开启,下图是我已经开启的状态。

15461c0283e105359c9a4d8ae95aeb5c.webp

大家可以认为你的存储同并没有域名绑定,开启这个子域名以后,cf就分配了一个域名给你的存储桶,如果你绑定了自定义域名到存储桶的话,可以把这个开关给关了,可以少一些问题。如果你没有购买域名没法自定义域名,一直用cf给你的这个域名也是可以的。自定义域名的好处是不限速,而且可以享受cloudflare上面的一系列缓存和自定义限速等设置,防止被刷访问次数。

然后,你就可以通过cf网站上传器上传图片到R2了,便可正常访问。

开通API

回到R2的概述界面,点击右上角的 管理 R2 API 令牌, 然后点击右上角的创建api令牌,如果要使用picgo进行图片的上传,请记得在权限选项把对象读和写打开,在ttl选项可以设置api令牌的有效期,这里可以选择永久。大概如下图所示。

cc4034c6e8ace15adee01d9165442251.webp

创建完成令牌以后请把 访问密钥 ID 和 机密访问密钥 收藏好,只会显示这一次,以后用的时候就找不到了,记下来以后还能用到。当然,如果没记住的话,以后再创建一个api令牌也是可以的。

218d27e5f930bebf17a380f5021b0e09.webp

使用picgo进行上传操作

PICGO项目地址:https://github.com/Molunerfinn/PicGo

安装好PicGo后,点击【插件设置】搜索【S3】,安装下图插件。

85f0aea37ee1a55f8fde38bc23799960.webp

安装完成后,点击左侧-侧边栏的图床设置,里面多了一个AMAZON S3这个选项,进去设置。

91f4dd57bfb26146e98f73f168bae02e.webp

应用密钥ID填写我们刚刚复制的访问密钥 ID

应用密钥填写我们刚刚复制的机密访问密钥

桶命就写我们存储桶的名字,这里是duangks

文件路径自己设置,默认也是可以的

地区可以不用填写,默认跳转就可以

自定义节点需要填写一下,在R2中点击存储桶,到存储桶的管理界面,点击设置,里面的S3 api就是需要复制的。例如

e61b61a1f462cebdf0029f9d8774b15c.webp

自定义域名需要注意一下,复制咱们开通的R2.dev 子域,然后在后面加上/你的桶名。

例如,我开通的R2.dev 子域是 https://pu1-082231df54234f2b90d1bd5432310a4b.r2.dev

需要在软件里面填写的自定义域名就是 https://pu1-082231df54234f2b90d1bd5432310a4b.r2.dev/duangks

然后就可以愉快的使用picgo了。

自定义域名

假如你在cf里面托管有域名的话,可以直接在R2存储桶的设置界面设置自定义域名,填写一个二级域名以后不需要自己去设置dns,cf就会自动帮你映射好。

然后就可以顺路把R2.dev 子域给关了。

记得到时候在picgo里面自定义域名也需要加后缀,就像这样 https://你的自定义域名/你的存储桶名

最后,推荐大家使用以下picgo的二开项目PICLIST,直接去github搜就行,相比picgo多了一个自带的图片管理功能,可以对图片进行有损/无损压缩和变换格式,以及添加水印。还多了个管理功能,可以通过设置以后直接管理你上传的文件。

WordPress 网站如何配置 Cloudflare 页面规则?

Cloudflare 使你可以对页面规则进行重新排序,以使某些规则优先于其他规则。由于免费帐户仅可以设定 3 个页面规则,因此我建议大家根据本文提供的教程设置下图中的 #1、#2 页面规则。图中的 #3 规则是个 301 自动重定向规则,其实是可以忽略或者通过宝塔面板的重定向功能代替。

20200905190232489
Cloudflare 允许设置 3 条免费页面规则

# 1 页面规则实例

添加 WordPress 后台链接 www.domain.com/*preview=true*
注意:www.domain.com 为演示域名,请自行替换!

  • 将『浏览器完整性检查』设置为『开』
  • 将『浏览器缓存ТТL』设置为 『30分钟』
  • 将『Always Online』设置为『关』
  • 将『安全级别』设置为『高』
  • 将『缓存级别』设置为『绕过』
  • 将『禁用应用』设置为『应用处于禁用状态』
  • 将『禁用性能』设置为『性能处于禁用状态』
20200905190254600
#1 WordPress 绕过预览 preview=true 缓存规则

# 2 页面规则实例

添加 WordPress 后台链接 www.domain.com/wp-admin*
注意:www.domain.com 为演示域名,请自行替换!

  • 将『浏览器完整性检查』设置为『开』
  • 将『浏览器缓存ТТL』设置为 『30分钟』
  • 将『Always Online』设置为『关』
  • 将『安全级别』设置为『高』
  • 将『缓存级别』设置为『绕过』
  • 将『禁用应用』设置为『应用处于禁用状态』
  • 将『禁用性能』设置为『性能处于禁用状态』
20200905190245985
#2 WordPress 绕过后台 wp-admin 缓存规则

# 3 页面规则实例

这就是一条简单的 301 重定向规则,你可以忽略本条规则。

20200905194054912
@ 根域名 301 重定向到 www 子域名规则

cloudflare pro 专业版如何设置防御CC攻击?

cloudflare 默认自带 5 条防火墙规则,完全免费。pro 版本可以使用,只需要 50 元一年,还需要做一些规则来进行防护 CC 你的站点最好是 CF pro 套餐,并且开启 HTTPS 我先大致分享一下我的规则。 阻止规则:

R9R76X83SPQIYOEHVD\

Tor 是洋葱路由,可以屏蔽。威胁分数大于等于 5 进行阻止。威胁分数正常访客压根不会触发,不要害怕误封。 验证码规则:

X98C_SI3PNW1R5W41R6S47

第一段的意思是禁止 https 的访问有 http1 的 HTTP 版本,因为正常访客访问 https 都是 HTTP2,只有代理 CC 会是 HTTP1,前提是你网站开启了 https,不开启 https 这个规则没作用。 用户代理这个我就不说了,防止一些奇奇怪怪的 ua。 威胁分数大于 1 的话自动弹出验证码,正常浏览器,干净的 IP 不会触发。 最后一个是防止伪造 ip 的。 除了设置规则,你还需要设置一些其他的东西。 比如 HTTP DDOS,全部拉满:

X98C_SI3PNW1R5W41R6S47

自动程序,只开启 js 检测(其他功能需要企业版):

5417OOF4DO9XMFI4FW2X

还有托管规则,可以点进去看看,都是比较有用的策略。 缓存配置 缓存级别设置为 忽略查询字符 页面规则 可以参考一下我的:

DM9G9XY1KZZM2CD13B

最后一个就是配置强制 HTTPS(Cloudflare 上的强制跳转,不需要回源) 首先,在页面规则-->转换规则,创建重写 URL:

TK84YM6S1FNWS9KHK_3T

转换规则创建好了之后,再到页面规则上设置跳转:

QVNG9ITTPX1NJ3ESYE7

注意,这个页面规则的优先级必须在第一。 理论上以上规则设置后,可以很好的防御代理 CC。遇到肉鸡 CC 只能开启请求速率限制了。

Cloudflare Page Rules 规则如何设置?

cloudflare作为全球最大的免费CDN加速,跟国内的优点就是不需要备案即可使用,而我们的Cloudflare默认只缓存图片之类的静态文件,很多网站使用Cloudflare加速效果不理想就是因为不会配置Cloudflare的Page Rules 页面规则,只要我们把Page Rules 配置好了,那么我们网站加速效果很牛,因为我们基于wordpress搭建的网站,这几天一直在调试Cloudflare的自定义页面规则缓存Page Rules,发现确实把 Page Rules 规则配置好了,网站访问速度飞快。

Cloudflare自定义规则的说明:

提示说明: 规则自定义指对“指定URL”进行页面级规则定制(支持通配符*)。可对任意子域名、目录、甚至单个URL进行针对性的加速缓存、安全防护等配置。列表中上下关系决定优先级,靠上规则优先级高。站长可以通过点击“↑”调整优先级。新增规则优先级最低,将于30s内生效。

URL指定支持通配符* 例如

1) 对xxx.com进行特定设置,需增加URL: https://xxx.com/wp-content/uploads/* 对网站 yuntue.com/wp-content/uploads/ 的所有内容缓存生效;

2) 对xxx.com所有html页面进行特定设置,需增加URL: xxx.com/*.html 对网站 xxx.com的html 内容缓存生效;

3) 对xxx.com所有html页面进行全部缓存,需增加URL: xxx.com/* 对网站 xxx.com 的所有内容缓存生效;

4)对xxx.com所有评论页面禁止缓存直接回源,需增加URL:xxx.com/*/comment-page-* 对网站评论内容缓存不生效;

以下是设置的wordpress Page Rules 页面规则:

https://xxx.com/*/comment-page-* Cache Level: Bypass 评论不缓存直接回源

https://xxx.com/wp-admin/* Cache Level:Bypass 后台管理页面不缓存直接回源

https://xxx.com/* Always Online: On, Cache Level: Cache Everything, Edge Cache TTL: 2 hours 全站所有内容缓存2小时

Cloudflare免费套餐只能设置3条规则,我们就只能设置后台和评论分页不缓存,其他一律缓存。其中还有个最关键的地方,Edge Cache TTL这个选项必须要设置一下,否则依然不会缓存的哦。Edge Cache TTL 缓存时间你可以设置30天或1天,最短为2个小时,如果网站没有什么更新,或者不需要用户登录的直接可以设置30天,这样可以减少服务器压力,加速用户的访问体验。

WordPress页面规则配置:

wp-admin 部分为管理后台,不加入缓存;

wp-login 部分为后台登陆页面,不加入缓存;

*/comment-page-* 用户评论,不加入缓存;

其余部分全部缓存;

以上的规则发现,这样我们需要4条规则,而免费的Cloudflare只能开启 Page Rules 3条规则,那么我们可以把wp-login 修改合并成一条规则;

可以安装插件 Rename wp-login.php ,修改登录页面 wp-login 网址为 wp-adminxxx,其中 xxx 为我们自定义的一串字符,比如 wp-adminabc 。

这样就可以通过 wp-admin* 来同时匹配前两条,将规则变为 3 条。

通过配置针对于 WordPress的页面规则,我们将全站进行缓存,设置网站永久在线等,并排除了管理后台、登录页面和文章文章评论页面的缓存,以便我们能够实时看到用户评论和正常登陆管理网站。

Cloudflare免费套餐如何设置DDOS防护?

Cloudflare 选择免费套餐,然后添加记录,填写子域名并修改DNS(DNS在域名注册地修改),开始简单配置防护策略

开启Cloudflare的防护配置:

点击 安全性 开启DDOS和自动程序 ,两个都开启

3796b3d9d4133326-1024x473-1
a30869c554133326-1024x508-1

配置一下屏蔽海外,针对对一些全国代理的CC,如果你的网站是开放全国的话就不用开启

d2b5ca33bd133401-1024x513-1

速率限制规则也需要开启,主要实现的是同个IP【10秒内请求数>n】时对其返回429阻止访问。如图填写/可对zone下所有域名进行保护,个人博客正常情况下n建议设置为50,资源更多的站点可以考虑适当放大(以不影响正常访问为准)

d2b5ca33bd133514-1024x598-1

最后在开始配置防火墙规则之前,请先前往【防火墙】-【设置】下,将【Privacy Pass支持】关闭,以避免一种绕过质询的可能(尽管如此,免费版的hCaptcha依然存在可绕过的方式,所以在较严重的情况下应适当选择阻止部分访问)。

d2b5ca33bd133542-1024x252-1

这篇博客对于CF WAF的配置分享到此告一段落了,但是对这些规则的应用仍有正则表达式等更高级的应用方式去探索,结合实际,准确地发掘并圈定恶意攻击特征,积极利用好这些已有的资源,最大限度减小对正常用户访问的影响是有必要的。

CloudFlare Business如何设置防护 CC 攻击

CloudFlare Business 套餐可以帮助网站抵御 CC 攻击,需要进行一些配置。操作包括设置自动程序、托管规则、防火墙规则、验证码规则等,还需要进行 SSL 证书和源站配置。可以使用屏蔽地区和速率限制等功能进行进一步保护。自定义回源可以防止扫源程序攻击。

需要Cloudflare 企业版套餐。

你的站点必须使用 HTTPS

开始(在 CloudFlare 上操作).

自动程序

首先,需要登录 Cloudflare 控制面板,选择域名–> 防火墙–> 自动程序,点击 配置超级自动程序攻击模式
如图所示,可以按照我的图片进行设置

image-18

托管规则

然后打开选择 防火墙–> 托管规则,把选项全部勾上,敏感度高,操作为质询。

网站以及 SSL 证书配置

大致分享一下我的规则。

建议您的站点设置 SSL 证书并开启 http2 协议:

image-17

并且开启强制 https,也可以限制 最低 TLS 版本为 1.1(目前浏览器最低都是 1.2) 参考图片:

image-20

页面规则

可以参考一下我的

image-21

防火墙规则

阻止规则:

R9R76X83SPQIYOEHVD-1

Tor 是洋葱路由,可以屏蔽。威胁分数大于等于 5 进行阻止。威胁分数正常访客压根不会触发,不要害怕误封。

验证码规则:

X98C_SI3PNW1R5W41R6S47-1

第一段的意思是禁止 https 的访问有 http1 的 HTTP 版本,因为正常访客访问 https 都是 HTTP2,只有代理 CC 会是 HTTP1,前提是你网站开启了 https,不开启 https 这个规则没作用。

用户代理这个我就不说了,防止一些奇奇怪怪的 ua。

威胁分数大于 1 的话自动弹出验证码,正常浏览器,干净的 IP 不会触发。

最后一个是防止伪造 ip 的。

除了设置规则,你还需要设置一些其他的东西。

比如 HTTP DDOS, 全部拉满:

KFKTUPN14CE_0H

到这里,在 Cloudflare 上设置的规则已经完成了。接下来是设置源站的

Nginx 配置

我们可以设置一个单独的 UA 回源,并且只允许那个 ua 回源。

先在 Cloudflare 上操作:

image-22

创建一个 HTTP 请求头修改,内容为 User-Agent:XXX (XXX 可以替换成其他):

image-23

比如我的是 moeyydad,你可以替换成别的,别人猜不到就行。

然后我们在 nginx 配置文件内添加一个 if

CODE
1
2
3
if ($http_user_agent != "moeyydad"){
      return 444;
}

这段代码加在 root 的下面

image-24

证书防护

可以防止源站证书被扫到。如果源站使用 ssl 回源,我们需要上传证书,但是我们不能使用自己的证书,可以使用自签证书。比如:

证书

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-----BEGIN CERTIFICATE-----
MIIDITCCAsagAwIBAgIUTcEWLzynkLCFCoAC1iDH2vG3EkYwCgYIKoZIzj0EAwIw
gY8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMTgwNgYDVQQL
Ey9DbG91ZEZsYXJlIE9yaWdpbiBTU0wgRUNDIENlcnRpZmljYXRlIEF1dGhvcml0
eTAeFw0xOTAxMTMxNDMxMDBaFw0zNDAxMDkxNDMxMDBaMGIxGTAXBgNVBAoTEENs
b3VkRmxhcmUsIEluYy4xHTAbBgNVBAsTFENsb3VkRmxhcmUgT3JpZ2luIENBMSYw
JAYDVQQDEx1DbG91ZEZsYXJlIE9yaWdpbiBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49
AgEGCCqGSM49AwEHA0IABAg/hZ9lDHj/f+0jDRAN23TkNEqIi46mCGnwZVD3glxL
l+a1mpfXLHSEFTipnSyQgmvkPYzQGaEIFD0q6W/ZgMujggEqMIIBJjAOBgNVHQ8B
Af8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFCEZF6Eyem01XPbgwr6DXLZV1qsQMB8GA1UdIwQYMBaA
FIUwXTsqcNTt1ZJnB/3rObQaDjinMEQGCCsGAQUFBwEBBDgwNjA0BggrBgEFBQcw
AYYoaHR0cDovL29jc3AuY2xvdWRmbGFyZS5jb20vb3JpZ2luX2VjY19jYTAjBgNV
HREEHDAaggwqLmRuc3BvZC5jb22CCmRuc3BvZC5jb20wPAYDVR0fBDUwMzAxoC+g
LYYraHR0cDovL2NybC5jbG91ZGZsYXJlLmNvbS9vcmlnaW5fZWNjX2NhLmNybDAK
BggqhkjOPQQDAgNJADBGAiEAnrequCk/QZOOrcPH6C3Hgcy4SPNUy5rQtku/aYkj
qQoCIQCN6IyYNiXuwG+8jUgJrveiirBjiz2jXZSTEfVAyibjTg==
-----END CERTIFICATE-----

密钥

CODE
1
2
3
4
5
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgK0HE3hTJQDg6p/fj
nS92eSuRKZEZ5F4grT6tWFKNYVmhRANCAAQIP4WfZQx4/3/tIw0QDdt05DRKiIuO
pghp8GVQ94JcS5fmtZqX1yx0hBU4qZ0skIJr5D2M0BmhCBQ9Kulv2YDL
-----END PRIVATE KEY-----

如何测试你的源 ip 不会被泄露呢?

你可以先在 hosts 文件把添加你的源 ip 和域名,然后打开浏览器访问,如果无法访问就是成功的,因为受到 ua 限制。

其次,检查证书确保不是你域名的证书。还要检查默认证书,https://ip/ 进行访问,看看证书是不是你域名的,如果不是则大功告成。

其他配置

屏蔽地区

如果你的访客只是中国地区的,你可以设置只允许中国访问:

image-25

使用速率限制

image-28

可以根据你网站的 api 或者其他进行速率限制。

自定义 Host 回源

image-29

这个跟自定义 UA 回源类似,目前一些扫源程序的原理是带一个 host 头访问全球的 ip 进行测试和验证。

比如我设置一个回源域名为 moeyydad.xyz 回源,然后把源站域名 moeyy.cn 替换为 moeyydad.xyz,这样就不会找到我们的源站。配合自定义 UA 回源,源站配置 CF 的自签 SSL 证书,自定义 Host 回源,攻击者则无法找到我们的源站。

CF 的自签 SSL 证书 在这里生成:

image-30

做完以上操作,你的网站已经是无敌的了。

Cloudflare 页面缓存(Page Rules)优化WordPress全站缓存配置规则教程

为什么要设置 Cloudflare 的页面规则 (Page Rules)进行全站缓存?

当你接入Cloudflare的CDN,并点亮小云朵之后。你的网站就已经通过Cloudflare的CDN节点进行中转了。默认情况下,Cloudflare 会对你网站中的图片、JS、CSS文件等静态文件进行缓存。

当访客访问你网站页面的时候,所有的静态文件都是由Cloudflare的节点直接给到访客的,但是HTML文件是默认不缓存的。也就意味着访客访问你的某一页面的时候。仍然会回源你的服务器

所以,本篇文章就是教你如何使用Cloudflarae的页面规则(Page Rules)把整个HTML页面给缓存。 使访客访问被缓存的页面的时候,直接交由Cloudflare进行服务,甚至你的源服务器不会收到任何GET请求。

这样做的好处是,可以大大减少源服务器的负载开支,使得你的站点能够承载更多的访客及流量。

下面两张演示图片就是使用了Cloudflare页面规则之后,节省的源站服务器的请求及流量。

itwnus8g6h.webp
go33l6esqf.webp

如何通过浏览器判断某个页面是否被Cloudflare的CDN进行缓存?

在学会如何判断之前,我们要先熟悉一个CDN中常见的术语:“HIT”,中文叫做“命中”。我们先看下面这样演示的图片:

6qp7i4mj0a.webp

可见,图中对过往24小时之内的所有请求有一个统计,统计分为:命中、未命中、动态、绕过……等等状态。

  • 【命中】状态就表示已经整网页完全被Cloudflare的CDN提供了服务;
  • 【绕过】状态则表示直接绕过Cloudflare的CDN由源站进行服务;
  • 【动态】状态则表示部分资源被Cloudflare的CDN缓存并服务,但混合了一些源站的请求;
  • 【未命中】因为命中与否是一个概率问题。Cloudflare 也并不能保证在缓存规则中的所有资源都完整的命中。

注:如果你开启了小云朵,但并未配置页面规则。那么你的绝大多数状态都是【动态】,因为访客访问页面中的静态资源交由Cloudflare进行提供,还是有一些请求是通过源站来服务的。

接下来,我们以Chrome为示范。教大家判断一个网页在开启Cloudflare CDN之后的缓存状态到底是【命中】亦或是【动态】

打开接入Cloudflare的网站页面,这里以陌涛小站首页示范。 “F12” 进入“开发者工具”,点击“Network”选项卡。 “Control + F5” 刷新该页面(苹果系统请使用 Command + R),并在“Name”栏中选择“网址”。

96w4qjdp1d.webp

从上图中可以看到 cf-cache-status 的值为 “HIT”,则说明该页面已经完全缓存。

其他状态解释如下:

cf-cache-status:DYNAMIC (动态) 如果是“DYNAMIC”则说明,该站可能只开启了小云朵,并没有配置整站完全缓存。 cf-cache-status:BYPASS (绕过) 如果是“BYPASS”则说明,该站针对这个页面设置了绕过,不允许缓存。

Cloudflare的缓存机制

假设你的站点有 www.renao.org/1.html 和 www.renao.org/2.html 两个页面。

当访客A 访问1.html这个页面的时候,首先会经由Cloudflare,这个时候你的页面规则就起作用了。 Cloudflare会发现,吼吼,这个站有个1.html 我给它缓存下来,并且转发给A。

当访客B 在Edge Cache过期时间之前,重复访问1.html的时候。 Cloudflare会思考一下。哈哈哈,这个1.html我有。不用麻烦源站了。我直接给到B就可以了。

这就是所谓的命中率,如果这个页面被完全命中,那么B访问1.html虽然得到了网页,但是是由Cloudflare直接提供的。你的源站甚至连客户的IP都统计不到。

但是,2.html 这个页面在你的规则建立开始时从未有任何访客访问过。那么Cloudflare也不知道这个页面的存在,也不会缓存。除非等到真的有人访问过,Cloudflare才会发现,并对其进行缓存。

好了,冗长的理论知识讲完了,我们来进行实战。 这里以Wordpress源站举例,来详细讲解如何设置页面规则才能够进行全站缓存。

一、Cloudflare 页面规则 免费版3条规则配置

由于Cloudflare免费版只提供了三条免费的规则,所以我们的想法有很多,但是真正实现起来肯定要有所取舍。下面提供了三种陌涛小站测试过的方法。根据你网站的具体情况选择即可。

在所有的规则配置中,“*”代表通配符,另外,规则注意上下排序。默认从第一条规则顺延到第二条规则,然后才是第三条规则。具体请参照以下【三种方法】的详细配置说明。

方法一、常规无人值守方法(网上流传配置方法)

  • *.imotao.xyz/wp-login*
  • *.imotao.xyz/wp-admin*
  • *.imotao.xyz/*
0u1j7zvc10.webp

第一条和第二条: 研究Wordpress后台目录,我们发现:wp-login 和 wp-admin 两个页面或目录分别是Wordpress后台的登陆页面和后台管理目录。为了让Cloudflare不缓存这些内容。我们在第一条和第二条中。建立的规则是Bypass,也就是绕过。

第三条: 此条规则很简单,也很容易理解。就是告诉Cloudflare 进行全局缓存。无论是图片、html、js、css、等等统统给我缓存。当然,按照上面提到的排序规则。Cloudflare会过滤掉以上我们不想要缓存的第一条、第二条。

方法二、常规无人值守方法

  • *.imotao.xyz/*preview=true*
  • *.imotao.xyz/*.php*
  • *.imotao.xyz/*
o5gnhmohe1.webp

第一条: 由于Wordpress 提供了预览页面,我们研究Wordpress 的预览页面URL可以发现一个特征,预览页面的URL都含有“preview=ture”这个字段,所以通过第一条规则,可以限制Cloudflare 缓存我们的预览页面。如果没有此条规则,Cloudflare会缓存我们预览的页面。但实际缓存了预览页面对网站本身的影响并不大。

第二条: 这条规则可以说是十分重要了。如果不设置此条规则,那么我们的后台页面、甚至包括登陆页面也都会被Cloudflare给缓存进去。曾经有小伙伴的wp-login页面(Wordpress默认登陆页面)连带着登陆账号密码统统被缓存了。访客直接可以通过缓存的账号密码进入Wordpress的后台,你说恐怖不恐怖? 此条规则是我们为了防止Cloudflare缓存我们的动态页面(登陆页、后台页)。这条简单粗暴的直接将所有带有“.php”的页面请求全部Bypass 也就是不缓存。

第三条: 同【方法一】的第三条

方法三、常规无人值守(并为针对“搜索功能的CC攻击”单独开启5秒盾)

  • *.imotao.xyz/?s=*
  • *.imotao.xyz/*.php*
  • *.imotao.xyz/*
axhglku0n5.webp

第一条: 将所有在Wordpress站内搜索的用户开启5秒盾。一般针对Wordpress的CC攻击都是通过随机UA、随机搜索内容来创建数千、数万的URL。并通过大量的代理IP来模拟真实用户访问。毕竟搜索在Wordpress这个系统中是需要调用数据库,很消耗服务器资源的。 如果攻击者不清楚你的Page Rules 的配置规则,通过站内搜索对你的站点进行CC攻击的时候,此规则就能够很好的帮助你缓解攻击。除非他技术高超可以穿5秒盾。

第二条: 同【方法二】的第二条

第三条: 同【方法二】的第三条

使用此种方法,将会舍弃上面方法二提到的【文章预览】功能不缓存,影响并不大。

特别注意

如果你留意到了上面提到的缓存机制的时候,一定要注意一件事情。就是若作为管理着的你登陆在Cloudflare的后台。有些主题在登陆状态下浏览文章是有“登陆条”的。所以尴尬的事情会发生。就是Cloudflare会无差别的把你的登陆条给缓存上去。真正的访客登陆到页面的时候,能看到你的用户名、留言数、等等关键信息。 所以,你需要在Wordpress的设置中关掉显示登陆条的功能。

二、Cloudflare Pro 页面规则 20或30条规则配置

如果你有Cloudflare Pro的付费版本,那么恭喜你可以配置20条页面规则。

这里贴出一个配置的示范。

1hpp5wyziu.webp

这里的第6条,设置之后,所有的动态页面(php)的请求全部301重定向到了陌涛小站的首页。也就意味着我自己也不能登陆后台进行编辑了。当我需要写文章的时候,将此条规则临时关闭,并清楚本地浏览器缓存就可以了。

三、其他Cloudflare 常见功能

清除缓存:当我们的页面已经被完全缓存之后,更新页面需要单独删除此链接的缓存,以便Cloudflare重新从源站抓取。

I’m In Attack:开启5秒盾模式

调试模式:开启之后默认绕过所有缓存,以便我们进行调试。