我的 Cloudflare 优化建议

date
Mar 20, 2020
slug
my-cloudflare-opts
status
Published
tags
Website
summary
Cloudflare 虽好,可不要…
type
Post
提到免费 CDN 大家第一个想到的估计都是 CloudFlare ,这玩意儿免费虽好,但是有时可能有减速效果,emmmm…
虽然大家套的都是同一个 CF ,但是设置优化还是可以一定程度改善性能的!!
以下是基础优化:
1. 开(白)通(嫖) Pro 套餐        CloudFlare Pro 虽然在线路上和免费版无异,但是可以开启 Polish(图片自动转 WebP)、 TCP Turbo、 Mirage(弱网优化)这几个附加功能,对加载速度有所提升。2. 使用自选 IP        (前提是 CNAME 接入)最基础的是自选 Enterprise 版本才分配的 IP 段,就比如 V2EX 的节点,可以启用 HKG 等普通版不分配的节点;剩下的就是解析到从大佬口中得知的,有特殊路由的节点(走香港等等)。3. Railgun        有 CFP 的大佬可以开,加速动态内容效果不错。4. Argo        每月 5$ 起步,可以改善 CF 到你源站的访问速度,可以达到类似 Railgun 的加速程度,见图:
开启前
notion image
开启Argo后
notion image
前后对比,以日本为例,TTFB从 271ms 降到 139ms,加速明显
5. 开启 HTTP/3 (with QUIC)6. 针对某个运营商/地区,禁用 CF 的 IPv6        (前提是 CNAME 接入)现在国内家宽大多自带了 IPv6 ,但是部分地区 v6 部分的路由魔幻的不行(全球旅行),由于操作系统会偏向使用 v6,在确定 CF v6 IP 存在路由问题后可以删掉 v6 记录,会有一定提升。
重点来了!!HTTP/2 Server Push:开启后你选择的资源会随第一个请求一起推送,大幅减少加载时间,需要你的服务器添加一条 Header,效果见图:
未开启
notion image
开启 Server Push 的同服务器网站
notion image
你只需要添加一个名为 Link 的 Header,内容为(以我的举例):
  • Link: </lib/abc.css>; rel=preload; as=style, </lib/abc.js>; rel=preload; as=script, </meta/bg.png>; rel=preload; as=image, </meta/favicon.png>; rel=preload; as=image;
假如你使用 PHP,可以添加一行代码:
  • header(‘Link: </lib/abc.css>; rel=preload; as=style, </lib/abc.js>; rel=preload; as=script, </meta/bg.png>; rel=preload; as=image, </meta/favicon.png>; rel=preload; as=image;’);
内容记得修改~
含义为:推送 “/lib/abc.css”,类型为样式表; 推送 “/lib/abc.js”,类型为JS;推送 “/meta/bg.png”,类型为图片;如果你使用 WordPress,比如 iON 的免费 WP,可以安装 “HTTP2 Push Content” 这个插件,会自动添加这个 Link 头。
添加后按 F12,看到资源后面有个 Push / Other 、可以找到类似:
  • cf-h2-pushed: </lib/abc.css>,</lib/abc.js>,</meta/bg.png>,</meta/favicon.png>
的 Header 就意味着已开启推送
做个广告:
这是我套了 CF 的在线记事本网站:https://note.ms/ 可以在手机/电脑之间传文本,实时更新,上线至今已经产生超过 8000 篇笔记啦!已开启 Argo 和 HTTP/2 Server Push ~
 
notion image

© huangtao728 2022