cloudflare 配置全站缓存
cloudflare 通过page rules(页面规则),配置全站缓存
说明
!!!!重要:Fecify-3.0版本之后,进行了升级,强烈建议使用自动化的方式配置cloudflare:【最佳实践】-CloudFlare-【最佳实践】
重要:本文是通过手动的方式,在cloudflare进行配置,麻烦且容易出错。
fecify可缓存的页面(原理解释,可不看)
一:前台商城
1.所有的页面都进行缓存
2./api开头的都是异步加载的数据,这些数据不可以缓存
二:商家后台
1.所有的都不缓存
三:服务端后台
1.所有的都不缓存
解决方案-思路(原理解释,可不看)
1.免费版CF的限制
免费版本CF只能加三个页面规则,cloudflare 根域名跳转到www域名已经占用了一个rules, 还剩下2个rules。
2.我们可以将商城的所有的页面都进行缓存(占用一个rules),而 /api开头的都不缓存(占用一个rules)
到这一步,3个rules用尽
3.商家端后台的访问后缀, 默认为:/manager
, 我们可以改成 /apimanager
(只要是api开头就行,后面的随便改,譬如:/apixxxxxxmanager
),如果更改参看:修改商家端和服务端url后缀
4.如果您的店铺域名和服务器端授权域名是同一个,那么,可以将 /admin
改为: /apiadmin
(只要是api开头就行,后面的随便改,譬如:/apixxxxxxadm
)
解决方案-实施
一.登录CF,进入您要设置的域名对应的部分。
二.点击页面规则(page rules)
上图里面有三条记录,这是我已经创建好了的(没设置前这里的列表是空的)
三:创建页面规则-1
1.点击按钮创建页面规则
2.创建页面规则
2.1URL
: 填写您的URL,https开头,完整格式为: https://www.domain.com/*
, 将其改为您自己的域名,填写上去
2.2点击添加设置
按钮,添加多行规则设置,如上图,您可以根据自己的需要更改缓存的时间
3.点击保存页面规则
四:创建页面规则-2
1.点击按钮创建页面规则
2.创建页面规则
如上图,进行设置即可,完成后点击保存页面规则
到这里我们的2个页面规则就创建好了,加上www跳转的页面规则,一共3个页面规则,免费版本的CF最多三个页面规则。
对于商家端后台,我们通过更改后缀,将其也以api开头来绕过CF缓存
五:页面规则的排序
对于页面规则,我们需要将绕过缓存
的配置行放到第一位,将缓存所有内容
的配置行放到其次
您可以点击上下箭头(如上图),更改行的位置。
六:更改商家端后台路径
1.将默认的manager
改为:apimanager
(只要以api开头,后面的字符随便填写,只要是字母就行)
2.如何更改商家端后台路径,参看:修改商家端和服务端url后缀
3.如果您的店铺域名和授权域名是同一个,那么访问服务端后台路径也需要更改一下,譬如:将默认的admin
改为:apiadmin
(只要以api开头,后面的字符随便填写,只要是字母就行)
,参看:修改商家端和服务端url后缀
到这里,全页缓存就配置好了
多货币模式下缓存设置
如果您的独立站店铺只有一个货币,那么可以忽略本部分
如果您开启多货币,并设置了多种货币,那么需要按照下面的步骤进行设置:
一:缓存设置
1.进入cache rules(缓存规则),点击按钮创建规则
2.编辑缓存规则:
- 字段:
Cookie
, 运算符:不包含
,值:f_currency_code=USD
(注意:如果您的店铺的默认货币不是USD,请更改成您店铺的默认货币) - And
- 字段:
Cookie
, 运算符:包含
,值:f_currency_code
- 缓存状态:
绕过缓存
保存即可。
二:问答FAQ
1.为什么要设置缓存规则?绕过缓存
答:fecify的多货币,是通过cookie记录的,而cloudflare的免费版本和pro版本是不支持将cookie作为cache key的(cf企业版支持cookie作为缓存key,但是非常贵,5000美金,基本可以不考虑了 ,因此将cookie作为缓存key的方案基本不用考虑了), 因此,只缓存默认货币下的页面,其他的货币不走CF缓存。
也就是说:用户进入商城,走的都是cf缓存,如果用户切换了其他的货币,那么将不走cf缓存。
2.如果其他货币不走cf缓存,会不会影响性能?
答:不会,首先,cf缓存主要是抗广告过来的流量,加快用户首屏的加载,首屏肯定走cf缓存。切换货币的用户毕竟是少数,因此对服务器影响不大, 另外,fecify本身也有缓存机制,查询从redis返回数据,因此影响不大。
缓存刷新
当您的商品进行了更新操作,您需要到CF这里手动更新CF的缓存。
在缓存
-->配置
(如下图,点击清除所有内容
即可清除所有缓存)
缓存关闭
如果您再页面规则这里,开启了页面缓存,如果想要关闭页面缓存(重装fecify,或者其他的原因,需要关闭页面缓存,可以按照下面,进行关闭缓存)