默认的,cloudflare这家服务商的免费CDN服务只缓存图片和js、css等一些资源型文件,也就是说,网页是不缓存的,也就是说,如果你的web服务器慢了点或者跟cloudflare的连接速度差了点,那其实网站并不会有效加速的……
我看到网上有文章说这个问题,因为不缓存html网页,所以不建议用cloudflare,但,知其一不知其二……其实官方同时也给了方法进行html强制缓存的,我测试了一下,不仅可以缓存html,而且在SSL/https状态下也是可以缓存的,太爽哦,列出方法:
登陆cloudflare以后,点进你的域名,然后“Page Rules”,创建一个规则,如果你用的也是wordpress的话,可以把我的后台路径也复制进去:
首先创建强制缓存规则:
我这里用的是/archives/*这个路径,其实也可以直接用/*来全站缓存,但我测试了一下,好像容易导致后台出问题,详细的大家可以自行测试一下。cache everything可以理解为无条件缓存,所以这种选项最好别用在搜索以及后台管理路径,你懂的……
第一项必须,第二项是可以选缓存时间,第三项看你个人喜好,默认是灰色不生效,需要点一下on/off开启为绿色,意思是永远在线,也就是说如果你的web服务器挂了,那么这个选项可以保持页面仍然可以打开,但好像有时限,总之别挂太久就不会影响网站访问的。
然后我添加的后台规则:
bypass就是直接跳过缓存系统,向后端服务器发出请求。
最终就是这样:
因为这两个路径不冲突,所以不需要注意顺序,如果相互之间有包含关系的话,要留意顺序,避免出问题。
来对比一下:
本站首页是不缓存直接透传到后端服务器的:
文章页面是缓存的,注意画圈的地方:
可以看到,HIT状态说明在缓存中进行了命中,有效缓存了网页哦
您好!
请教下,在您这里使用 cloudflare 缓存html时,同时使用了 varnish 么?我在上面的截图中,没有看到varnish 是否工作的信息。
谢谢!
cf这几天好像被攻击,我上周末开始没用了,如果你有用到cf并且同时用varnish的话,我之前文章里面varnish配置文件里的set resp.http.X-Cache = "HIT_us3"或者miss这个http头会看到运行状态的。
cloudflare有wordpress插件,开启Automatic Cache Management。更新文章等内容时会更新缓存页面。
谢谢,不过解决的不是相同问题哦,api或者插件只是代替手工操作的过程,但默认情况下,cf是只缓存图片什么的,不缓存网页的
我的意思是,用这个强制缓存后。文章更新,评论更新不用单独清理页面。
而是自动的清理缓存。不用等待缓存过期时间。
那倒是不错,周末我试试看,谢谢啦
您好!
菜鸟新手,请教一下,如果使用cloudflare, Varnish 的 vcl 是否需要特别设置?
我看一些外文的资料说是需要在 nginx 配置文件 和 Varnish的 vcl中 判断 cloudflare 过来的真实ip 是多少....
中文资料中,很少有提到这个的,有点头大。
请指教!
顺祝新年快乐!
首先,不需要特殊设置,你的源服务器能正常浏览,则cdn就能正常使用。
然后么,cf的Network里面有一项True-Client-IP Header,看名字,你懂的,不过么,这个需要付费版本才行,我用免费的,看不到具体选项。