使用免费 CDN,估计多数人首先想到的都会是 CloudFlare 。这东西免费倒是不错,但有时可能会产生减速的情况虽说大家用的都是同一个 CF ,然而通过设置优化还是能够在一定程度上提升性能的!!
以下是基础优化方面的内容:
-
开通(白嫖)Pro 套餐
CloudFlare Pro 在线路方面与免费版没有区别,不过能够开启 Polish(图片自动转换为 WebP)、TCP Turbo、Mirage(针对弱网的优化)这几个额外功能,对加载速度会有一定的提升。 -
运用自选 IP
(前提是 CNAME 接入)最基本的是自选只有 Enterprise 版本才分配的 IP 段,例如像 V2EX 的节点,可以启用 HKG 等普通版不分配的节点;其余的就是解析到从行家那里得知的,具有特殊路由的节点(比如走香港线路等等)。 -
Railgun
拥有 CFP 的用户可以开启,对于加速动态内容效果较为理想。 -
Argo
每月 5 美元起步,能够优化 CF 到您源站的访问速度,能够达到类似于 Railgun 的加速水平,参考下图:
4.1 开启前>
4.2 开启 Argo 后>
4.3 前后对比,以日本为例,TTFB 从 271 毫秒降低至 139 毫秒,加速效果显著
- 开启 HTTP/3 (with QUIC)
- 针对某个运营商/地区,禁止 CF 的 IPv6
(前提是 CNAME 接入)如今国内家庭宽带大多自带了 IPv6 ,但部分地区 v6 部分的路由状况复杂(全球漫游),由于操作系统会倾向于使用 v6 ,在确定 CF v6 IP 存在路由问题后可以删除 v6 记录,会有一定的性能提升。
重点来了!!
- HTTP/2 Server Push:
开启后您所选择的资源会随着第一个请求一同推送,大幅缩短加载时间,
需要在您的服务器添加一条 Header ,效果参考下图:
1.1 未开启
1.2 开启 Server Push 的同服务器网站
- 您只需添加一个名为 Link 的 Header
内容为(以我为例):
代码语言:javascript
复制
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 ,可以添加一行代码:
代码语言:javascript
复制
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 ,
可以找到类似:
代码语言:javascript
复制
cf-h2-pushed: </lib/abc.css>,</lib/abc.js>,</meta/bg.png>,</meta/favicon.png>