Cloudflare开了还是慢是什么原因?从 CDN、源站、线路到缓存命中率的完整排查方案

一、Cloudflare 不是“万能加速器”,它只能加速适合被加速的部分
很多站长开 Cloudflare 后会有一个误解:
只要 DNS 云朵变橙色,网站就应该马上变快。
但真实情况不是这样。
Cloudflare 主要解决的是:
- 静态资源分发,比如图片、CSS、JS、字体文件;
- 边缘节点抗压,比如隐藏源站 IP、抵挡部分攻击流量;
- TLS、HTTP/2、HTTP/3、Brotli 等传输优化;
- 一部分缓存命中后的访问加速。
但如果你的网站慢在下面这些地方,Cloudflare 开了也不会明显变快:
- 源站服务器本身 CPU、内存、磁盘 IO 不够;
- PHP、MySQL、WordPress 程序响应慢;
- 页面没有缓存,HTML 每次都回源;
- 源站线路差,Cloudflare 回源也慢;
- 访问用户在国内,但 Cloudflare 普通节点线路不稳定;
- 图片没有压缩,首页资源太大;
- 第三方 JS、广告、统计代码拖慢页面;
- 缓存规则没有配置好,
CF-Cache-Status一直是MISS、BYPASS、DYNAMIC。
所以判断“Cloudflare 开了还是慢”,不能只看有没有开启 CDN,而要看:
慢的是客户端到 Cloudflare,还是 Cloudflare 到源站,还是源站自己生成页面慢。
二、一个真实场景:网站套了 Cloudflare,但首页还是 3 秒以上
我之前遇到过一个比较典型的站点:
- 程序:WordPress + WooCommerce;
- 源站:香港服务器;
- 访问用户:中国大陆 + 东南亚;
- 已开启 Cloudflare 橙云代理;
- 首页打开时间:3.2 秒到 5 秒不等;
- 后台打开产品列表时,经常超过 6 秒;
- 图片、CSS、JS 都走 Cloudflare,但 HTML 页面几乎没有缓存。
一开始用户以为是 Cloudflare 没生效,但排查后发现:
curl -I https://www.a5idc.com/
返回头里有:
cf-cache-status: DYNAMIC
server: cloudflare
这说明什么?
说明请求确实经过 Cloudflare 了,但首页 HTML 没有被缓存。
每次用户打开网站时,Cloudflare 还是要回源站,让 WordPress 查询数据库、加载插件、生成页面,再返回给用户。
也就是说:
Cloudflare 只是站在前面转发了一次请求,真正慢的地方还是源站和程序。
后来我们做了三件事:
- 给首页、栏目页、文章页配置边缘缓存;
- 把源站从普通低配云服务器换成香港物理服务器;
- 对 PHP-FPM、MySQL、Redis 和图片资源做优化。
优化前后大概是这样:
| 项目 | 优化前 | 优化后 |
|---|---|---|
| 首页 TTFB | 1200ms - 2200ms | 180ms - 450ms |
| 首页完整加载 | 3.2s - 5s | 1.1s - 1.8s |
| 后台产品列表 | 6s 左右 | 1.5s - 2.5s |
| Cloudflare 缓存状态 | DYNAMIC / MISS | HIT |
| 源站 CPU 峰值 | 经常 80%+ | 多数低于 35% |
这类问题非常常见:
不是 Cloudflare 没开,而是 Cloudflare 没真正缓存到关键页面。
三、Cloudflare 开了还是慢,最常见的 8 个原因
1. 你只是开了橙云,但页面并没有被缓存
很多站点打开 Cloudflare 后,只缓存了图片、CSS、JS,HTML 页面还是动态回源。
比如你访问首页,返回:
cf-cache-status: DYNAMIC
或者:
cf-cache-status: MISS
这就说明 Cloudflare 没有直接从边缘节点返回缓存内容。
常见状态可以这样理解:
| 状态 | 含义 | 是否真的加速明显 |
|---|---|---|
| HIT | 命中 Cloudflare 缓存 | 明显加速 |
| MISS | 第一次未命中,需要回源 | 首次慢,后续可能快 |
| BYPASS | 被规则跳过缓存 | 基本没缓存 |
| DYNAMIC | 动态内容,不缓存 | 基本靠源站速度 |
| EXPIRED | 缓存过期,重新回源 | 会有波动 |
| REVALIDATED | 重新验证缓存 | 比完全回源好一些 |
如果一个 WordPress 网站的首页、文章页、产品页长期都是 DYNAMIC,那 Cloudflare 对页面打开速度的帮助就有限。
建议配置
对于普通企业官网、博客、文章站,可以考虑缓存这些页面:
- 首页;
- 文章页;
- 栏目页;
- 产品详情页;
- 静态落地页;
- 图片、CSS、JS、字体文件。
但不要缓存这些页面:
/wp-admin/*/wp-login.php- 购物车页面;
- 结算页面;
- 用户中心;
- 搜索结果页;
- 带登录态的页面;
- API 动态接口。
2. 源站服务器本身慢,Cloudflare 只能“等源站”
Cloudflare 不是服务器性能优化工具。
如果源站生成页面要 2 秒,Cloudflare 第一次回源时也只能等 2 秒。
常见源站慢的表现:
curl -o /dev/null -s -w "DNS:%{time_namelookup}\nConnect:%{time_connect}\nTTFB:%{time_starttransfer}\nTotal:%{time_total}\n" https://www.example.com/
如果结果类似:
DNS:0.018
Connect:0.060
TTFB:2.350
Total:3.100
重点看 TTFB。
TTFB 超过 1 秒,通常说明源站生成页面慢,可能是 PHP、数据库、插件、磁盘 IO、CPU 等问题。
常见源站瓶颈
| 瓶颈位置 | 典型表现 | 排查方向 |
|---|---|---|
| CPU 主频低 | 页面生成慢,PHP 执行慢 | 看单核性能、PHP-FPM 队列 |
| 内存不足 | MySQL、PHP 频繁 swap | free -m、vmstat |
| 磁盘 IO 慢 | 后台、数据库查询慢 | iostat -x 1 |
| MySQL 查询慢 | 产品页、搜索页很慢 | 慢查询日志 |
| PHP 插件太多 | WordPress 页面慢 | 禁用插件对比 |
| 带宽太小 | 图片、下载、视频加载慢 | iftop、带宽图 |
| 回源线路差 | Cloudflare 到源站慢 | MTR、回源测试 |
3. 国内访问 Cloudflare 普通节点,不一定比直连香港 CN2 更快
这是很多国内站长容易忽略的问题。
如果你的用户主要在中国大陆,使用 Cloudflare 普通 CDN 后,访问路径可能变成:
用户 → Cloudflare 边缘节点 → 源站服务器
但这个 Cloudflare 节点不一定在最优位置,也不一定走 CN2、9929、CMIN2 等优化线路。
有时候直连香港 CN2 服务器可能是:
用户 → 电信/联通/移动优化线路 → 香港源站
反而更短、更稳。
所以对国内访问来说,不能简单认为“套 Cloudflare 一定比直连快”。
对比思路
你可以分别测试:
- 直连源站 IP 的 TTFB;
- 通过 Cloudflare 域名访问的 TTFB;
- 不同地区、不同运营商的 Ping、MTR、HTTP 首包时间;
- 晚高峰 20:00 - 23:00 的表现。
如果你的网站主要面向国内用户,而 Cloudflare 后 TTFB 反而更高,就要考虑:
- 是否继续让 HTML 走 Cloudflare;
- 是否只让静态资源走 Cloudflare;
- 是否使用香港 CN2 / BGP 优化线路作为主访问入口;
- 是否做国内用户与海外用户的访问策略分流。
4. 网站没有做好页面缓存,WordPress 每次都在动态生成
以 WordPress 为例,一个页面打开可能要经历:
Nginx/Apache 接收请求
→ PHP-FPM 执行 WordPress
→ 加载主题
→ 加载插件
→ 查询 MySQL
→ 调用外部接口
→ 生成 HTML
→ 返回给 Cloudflare
→ 返回给用户
如果没有页面缓存,每个访客都要让服务器重新执行这一套流程。
当访问量上来后,服务器压力会明显增加。
WordPress 推荐缓存结构
比较稳的方案是:
Cloudflare 边缘缓存
+ Nginx FastCGI Cache / OpenLiteSpeed Cache
+ Redis Object Cache
+ MySQL 慢查询优化
+ 图片 WebP / AVIF 压缩
如果是企业官网、博客、内容站,我更建议:
- 首页、文章页、栏目页缓存 HTML;
- 登录用户不缓存;
- 后台不缓存;
- 评论提交、购物车、结算页不缓存;
- 静态资源设置较长缓存时间;
- 修改文章后自动清理对应缓存。
5. 首页资源太大,Cloudflare 只能帮你传,不能帮你减肥
有些网站首页打开慢,不是网络慢,而是资源太大。
比如:
| 资源类型 | 常见问题 |
|---|---|
| 首页大图 | 单张 2MB - 5MB |
| Banner 视频 | 首屏直接加载 MP4 |
| JS 文件 | 多个插件叠加,超过 1MB |
| 字体文件 | 加载多个中文字库 |
| 第三方代码 | 统计、客服、广告、地图同时加载 |
| 图片格式 | 全部 JPG/PNG,没有 WebP |
| 首屏渲染 | CSS/JS 阻塞严重 |
这种情况下,即使 Cloudflare 缓存命中,用户还是要下载很大的资源。
优化建议
- 首屏图片控制在 200KB - 400KB 以内;
- 商品图、文章图统一压缩成 WebP;
- 非首屏图片开启懒加载;
- 移除无用插件产生的 CSS/JS;
- 第三方客服、统计代码延迟加载;
- 首页不要直接加载大视频;
- 字体文件尽量本地化并做子集化;
- CSS、JS 合并不是越多越好,要重点减少阻塞。
6. SSL/TLS、HTTP/3、Brotli 配置不合理
Cloudflare 上很多功能看起来都像“加速”,但不是全部都适合每个站点。
建议开启:
- SSL/TLS:Full 或 Full Strict;
- HTTP/2;
- HTTP/3;
- Brotli;
- Always Use HTTPS;
- Automatic HTTPS Rewrites;
- Early Hints 可以测试后决定;
- TLS 1.3 建议开启。
但要注意:
如果源站证书配置错误,或者 Cloudflare 使用了不合适的 SSL 模式,可能会出现:
- 反复 301 跳转;
- 访问偶发 525 / 526;
- HTTPS 打开慢;
- 静态资源混合内容警告;
- 登录状态异常。
比较推荐的模式是:
Cloudflare SSL/TLS 模式:Full Strict
源站:部署有效证书
Nginx:强制 HTTPS
WordPress:站点地址统一为 https://
不建议长期使用 Flexible 模式。
因为它容易导致源站与 Cloudflare 之间不是完整 HTTPS,也容易出现跳转循环和安全隐患。
7. Cloudflare 安全规则太重,反而拖慢动态请求
Cloudflare 的 WAF、防火墙、Bot Fight Mode、安全挑战等功能对安全有帮助,但如果规则过重,也可能影响访问体验。
常见表现:
- 第一次访问出现验证页;
- API 请求偶发 403;
- 后台 AJAX 请求慢;
- 登录页面反复验证;
- 国内用户访问时等待时间变长;
- 搜索引擎抓取受影响。
建议这样处理:
| 页面类型 | 建议策略 |
|---|---|
| 首页、文章页 | 正常缓存,低安全拦截 |
| 登录页 | 加强防护,可限制国家/IP/UA |
| 后台目录 | 白名单 IP 或加强验证 |
| API 接口 | 不要随便加 JS Challenge |
| 静态资源 | 放宽安全规则 |
| 搜索引擎蜘蛛 | 避免误拦截 |
如果是 WordPress,后台路径可以单独做规则:
/wp-admin/*
/wp-login.php
/xmlrpc.php
其中 xmlrpc.php 如果不用,建议直接限制或关闭。
8. 源站 IP 和 Cloudflare 回源链路质量差
很多人只测试用户到 Cloudflare 的速度,却忽略了 Cloudflare 到源站的速度。
实际上,一个完整请求是:
用户 → Cloudflare 节点 → 源站服务器 → Cloudflare 节点 → 用户
如果源站在普通海外线路上,Cloudflare 回源也可能慢。
比如:
- 源站在廉价美国机房;
- 源站带宽拥塞;
- 源站晚高峰丢包;
- 源站国际出口差;
- 源站离主要用户太远;
- 源站服务器防火墙限速;
- 源站被攻击后带宽打满。
Cloudflare 能帮你挡一部分访问流量,但挡不住源站本身质量差的问题。
四、怎么判断到底慢在哪里?
1. 看 Cloudflare 是否命中缓存
执行:
curl -I https://www.a5idc.com/
重点看:
cf-cache-status
age
cache-control
server
如果看到:
cf-cache-status: HIT
age: 3600
说明命中了缓存。
如果看到:
cf-cache-status: DYNAMIC
说明页面还是动态回源。
2. 测 TTFB,判断是不是源站慢
执行:
curl -o /dev/null -s -w \
"DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTLS: %{time_appconnect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
https://www.example.com/
重点看:
| 指标 | 含义 | 判断 |
|---|---|---|
| DNS | 域名解析时间 | 一般应很低 |
| Connect | TCP 连接时间 | 反映网络连接 |
| TLS | HTTPS 握手时间 | SSL 相关 |
| TTFB | 首字节时间 | 最关键 |
| Total | 总加载时间 | 包含下载资源 |
如果 TTFB 很高,通常不是图片问题,而是源站或动态生成慢。
3. 对比直连源站和 Cloudflare 域名
可以临时在本地 hosts 里绑定源站 IP,绕过 Cloudflare 测试。
例如:
源站 IP 你的域名
然后分别测试:
curl -o /dev/null -s -w "%{time_starttransfer}\n" https://www.example.com/
对比:
| 情况 | 说明 |
|---|---|
| 直连快,Cloudflare 慢 | 可能是 Cloudflare 节点/线路/规则问题 |
| 直连慢,Cloudflare 也慢 | 源站大概率有问题 |
| 静态资源快,HTML 慢 | 页面缓存没做好 |
| 首页快,后台慢 | 程序/数据库/插件问题 |
| 白天快,晚上慢 | 线路拥塞或带宽瓶颈 |
4. 看源站服务器负载
Linux 服务器上可以看这些:
top
htop
free -m
vmstat 1
iostat -x 1
df -h
df -i
ss -antp
重点关注:
- CPU 是否长期高;
- load average 是否异常;
- 内存是否不足;
- 是否产生 swap;
- 磁盘
%util是否接近 100%; - MySQL 是否占用过高;
- PHP-FPM 是否排队;
- 网络带宽是否打满。
如果 Cloudflare 回源时源站已经很吃力,再好的 CDN 也救不了动态页面。
五、不同网站类型,应该怎么配置 Cloudflare?
1. 企业官网 / 博客站
这类网站最适合 Cloudflare 加速。
建议:
- 首页缓存;
- 文章页缓存;
- 栏目页缓存;
- 图片、CSS、JS 长缓存;
- 后台、登录、预览页面不缓存;
- 开启 Brotli;
- 开启 HTTP/2 / HTTP/3;
- 图片压缩成 WebP;
- 源站开启 Nginx FastCGI Cache 或 LiteSpeed Cache。
推荐服务器配置:
香港服务器入门配置:
CPU:Intel Xeon E3-1271 v3 / E-2334
内存:16GB DDR4
硬盘:480GB SSD 或 960GB NVMe
带宽:100M BGP,含 25M CN2 直连
系统:Ubuntu 22.04 / Debian 12 / AlmaLinux 9
适合:企业官网、博客、轻量 WordPress、SEO 内容站
如果文章量较大、图片较多,可以升级到:
香港高性能配置:
CPU:AMD EPYC 4585PX,16核32线程,高主频
内存:32GB / 64GB DDR5
硬盘:960GB NVMe PCIe Gen4 SSD
带宽:100M BGP,含 25M CN2 直连,可升级更高带宽
适合:WordPress 多站点、企业官网集群、外贸独立站、内容型网站
2. 外贸独立站 / 跨境电商站
这类网站不能简单做全站缓存,因为有购物车、结算、登录状态。
建议:
| 页面 | 是否缓存 |
|---|---|
| 首页 | 可以缓存 |
| 商品详情页 | 可以缓存,但要处理库存/价格刷新 |
| 分类页 | 可以缓存 |
| 搜索页 | 谨慎缓存 |
| 购物车 | 不缓存 |
| 结算页 | 不缓存 |
| 用户中心 | 不缓存 |
| 支付回调 | 不缓存 |
| 后台 | 不缓存 |
推荐配置:
香港电商服务器配置:
CPU:AMD EPYC 7402P / EPYC 4585PX
内存:64GB DDR4 / DDR5
硬盘:960GB NVMe SSD + 备份盘
带宽:100M BGP + 25M CN2 直连,可按访问量升级
系统:Ubuntu 22.04 LTS
Web 环境:Nginx + PHP 8.2 + MySQL 8.0 + Redis
适合:WooCommerce、Shopify 独立前端、Magento 轻中型站点、跨境商城
优化重点:
- Redis Object Cache;
- MySQL 慢查询优化;
- PHP-FPM 进程数调优;
- 商品图 WebP;
- 静态资源走 Cloudflare;
- 购物车、支付链路不缓存;
- 后台和前台分离监控。
3. 下载站 / 图片站 / 资源站
这类网站慢,很多时候不是 Cloudflare 配置问题,而是源站带宽和磁盘 IO 问题。
如果源站带宽只有 10M 或 20M,大量用户同时下载,Cloudflare 首次回源时仍然会慢。
推荐配置:
香港大带宽下载站配置:
CPU:AMD EPYC 7402P,24核48线程
内存:64GB DDR4
硬盘:960GB NVMe SSD + 大容量 SATA/SSD 存储盘
带宽:300M / 500M / 1G BGP 国际带宽
系统:Debian 12 / Ubuntu 22.04
适合:图片站、软件资源站、下载站、素材站
优化重点:
- 大文件不要全部依赖普通页面缓存;
- 热门文件走 CDN;
- 冷门文件源站直出;
- Nginx 开启 sendfile;
- 合理设置
Cache-Control; - 图片、压缩包、视频文件分域名管理;
- 大文件下载建议限速,避免单用户吃满带宽。
Nginx 静态资源缓存示例:
location ~* \.(jpg|jpeg|png|gif|webp|css|js|ico|woff2)$ {
expires 30d;
add_header Cache-Control "public, max-age=2592000, immutable";
}
4. API / 后台系统 / SaaS 平台
API 类网站不一定适合强缓存。
Cloudflare 可以用于:
- TLS 加速;
- WAF 防护;
- DDoS 缓解;
- Bot 过滤;
- 限速规则;
- 边缘安全策略。
但动态接口速度仍然主要取决于:
- 源站 CPU;
- 数据库;
- Redis;
- 后端代码;
- 网络延迟;
- 数据库连接池;
- 队列系统。
推荐配置:
香港 API / SaaS 服务器配置:
CPU:AMD EPYC 4585PX,16核32线程,高主频
内存:64GB DDR5
硬盘:960GB NVMe PCIe Gen4 SSD
带宽:100M BGP + 25M CN2 直连,可升级
系统:Ubuntu 22.04 LTS
适合:API 网关、企业后台、轻量 SaaS、会员系统、管理平台
如果数据库压力大,建议拆分:
Web 节点:
AMD EPYC 4585PX / 32GB 内存 / NVMe SSD
数据库节点:
AMD EPYC 7402P / 64GB - 128GB 内存 / NVMe SSD
缓存节点:
Redis 独立部署 / 内网访问
六、推荐的一套完整优化方案
方案一:Cloudflare + 香港 CN2 源站,适合国内和亚洲用户
适合:
- 企业官网;
- WordPress 博客;
- 外贸展示站;
- 国内访问较多的网站;
- 需要兼顾 SEO 和访问体验的网站。
架构:
用户
→ Cloudflare
→ 香港 CN2 / BGP 物理服务器
→ Nginx / PHP-FPM / MySQL / Redis
推荐源站配置:
CPU:AMD EPYC 4585PX,16核32线程
内存:32GB / 64GB DDR5
硬盘:960GB NVMe PCIe Gen4 SSD
带宽:100M BGP,含 25M CN2 直连
系统:Ubuntu 22.04 LTS
Web:Nginx + PHP 8.2 + MySQL 8.0 + Redis
适合场景:
- WordPress 内容站;
- 企业官网;
- 图片较多的产品展示站;
- 百度、Google 双收录站点;
- 访问人群以大陆、香港、东南亚为主。
方案二:Cloudflare + 美国三网精品服务器,适合跨境和全球访问
适合:
- 外贸业务;
- AI 工具站;
- 跨境 SaaS;
- 海外用户较多的网站;
- 中国大陆也有访问需求的网站。
推荐配置:
美国服务器配置:
CPU:AMD EPYC 7402P,24核48线程
内存:64GB DDR4
硬盘:960GB NVMe PCIe Gen4 SSD
带宽:30M 三网精品线路
线路:CN2 GIA + CUPM9929 + CMIN2
系统:Ubuntu 22.04 / Debian 12
适合场景:
- 北美业务官网;
- 海外 SaaS;
- 跨境电商后端;
- API 服务;
- 企业知识库;
- 需要中美访问都相对稳定的业务。
这种方案的重点不是只靠 Cloudflare,而是:
优质源站线路 + Cloudflare 静态缓存 + 程序层优化
方案三:Cloudflare 只做静态资源,主站直连香港优化线路
有些网站国内访问 Cloudflare 反而慢,可以考虑:
主域名:www.example.com → 直连香港 CN2 源站
静态域名:static.example.com → Cloudflare
图片域名:img.example.com → Cloudflare
下载域名:download.example.com → CDN / 大带宽服务器
适合:
- 国内用户占比高;
- HTML 页面要求低延迟;
- 图片、CSS、JS 较多;
- 不想让所有访问都经过 Cloudflare;
- 源站线路本身质量较好。
这种方式比较务实。
不是所有内容都套 Cloudflare,而是让 Cloudflare 做它最擅长的静态资源分发。
七、Cloudflare 缓存规则怎么设置更合理?
以 WordPress 内容站为例,可以这样设计:
1. 缓存静态资源
匹配:
*.jpg
*.jpeg
*.png
*.gif
*.webp
*.css
*.js
*.woff
*.woff2
*.svg
建议:
Browser Cache TTL:30天
Edge Cache TTL:30天
Cache Status:Cache Everything / Eligible for cache
2. 缓存文章页、栏目页、首页
可缓存路径:
/
/category/*
/tag/*
/archives/*
/2026/*
/article/*
注意排除:
/wp-admin/*
/wp-login.php
/cart/*
/checkout/*
/my-account/*
/?s=*
3. 登录用户不缓存
WordPress 登录用户会带 Cookie。
如果不排除,可能出现缓存错乱。
常见需要排除的 Cookie:
wordpress_logged_in_
woocommerce_items_in_cart
wp_woocommerce_session_
comment_author_
4. 修改内容后自动清缓存
如果文章更新后 Cloudflare 还返回旧内容,用户会觉得网站异常。
建议使用:
- Cloudflare 官方插件;
- 缓存插件联动清理;
- API 自动清理指定 URL;
- 发布文章后清理首页、栏目页、文章页。
八、源站服务器也要做缓存,不能只依赖 Cloudflare
很多站长只配置 Cloudflare,不配置源站缓存。
这会导致一旦 Cloudflare 没命中,源站压力仍然很大。
推荐源站缓存结构:
Nginx FastCGI Cache
+ Redis Object Cache
+ OPcache
+ MySQL Buffer Pool
+ Cloudflare Edge Cache
PHP OPcache 建议
php.ini 可以参考:
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=100000
opcache.validate_timestamps=1
opcache.revalidate_freq=60
PHP-FPM 进程数示例
假设服务器 32GB 内存,WordPress 单个 PHP 进程大约 80MB - 150MB,可以这样估算:
可给 PHP-FPM 使用内存:8GB
单进程平均内存:120MB
最大进程数:8000 / 120 ≈ 66
配置示例:
pm = dynamic
pm.max_children = 60
pm.start_servers = 8
pm.min_spare_servers = 8
pm.max_spare_servers = 20
pm.max_requests = 1000
不要盲目把 pm.max_children 设置到几百。
进程太多反而会把内存打爆,导致 swap,网站更慢。
九、不同慢法,对应不同解决方案
| 现象 | 可能原因 | 解决方向 |
|---|---|---|
| 开 Cloudflare 后还是慢 | HTML 没缓存 | 配置页面缓存规则 |
| 首页快,后台慢 | 后台动态查询慢 | 优化 PHP/MySQL/插件 |
| 图片加载慢 | 图片太大或源站带宽小 | WebP、懒加载、图片 CDN |
| 国内访问慢 | Cloudflare 普通线路不稳定 | 香港 CN2 / 优化线路 / 分流 |
| 首次打开慢,刷新后快 | 首次 MISS 回源 | 提高缓存命中率 |
| 晚上变慢 | 线路拥塞或源站带宽不足 | 换线路、加带宽 |
| TTFB 高 | 源站生成慢 | 源站缓存、升级 CPU/磁盘 |
| Total 高但 TTFB 低 | 页面资源太大 | 压缩图片、减少 JS |
| 偶发 403/验证页 | WAF 规则过严 | 调整安全规则 |
| 登录/购物车异常 | 动态页面被缓存 | 排除 Cookie 和路径 |
十、我建议的排查顺序
如果你的网站 Cloudflare 开了还是慢,不要一上来就换服务器,也不要一上来就关 Cloudflare。
建议按这个顺序查:
第一步:确认 Cloudflare 是否真的代理成功
看响应头:
curl -I https://www.example.com/
是否有:
server: cloudflare
cf-ray:
第二步:看是否命中缓存
重点看:
cf-cache-status
如果长期是:
DYNAMIC
BYPASS
MISS
那就先优化缓存规则。
第三步:测 TTFB
curl -o /dev/null -s -w "%{time_starttransfer}\n" https://www.example.com/
如果 TTFB 高,重点看源站和动态生成。
第四步:绕过 Cloudflare 测源站
如果源站直连也慢,说明问题不在 Cloudflare。
要查服务器性能、程序、数据库、线路。
第五步:看首页资源体积
用浏览器开发者工具看:
- 总资源大小;
- 请求数量;
- 最大图片;
- 阻塞 JS;
- 第三方请求;
- 首屏加载时间。
如果首页 5MB、10MB,再好的 CDN 也不会有特别好的体验。
第六步:看服务器负载
top
free -m
iostat -x 1
vmstat 1
mysqladmin processlist
重点确认:
- CPU 是否满;
- 内存是否不足;
- 磁盘 IO 是否堵;
- MySQL 是否慢;
- PHP-FPM 是否排队;
- 带宽是否打满。
十一、什么时候该优化 Cloudflare,什么时候该换服务器?
适合先优化 Cloudflare 的情况
- 静态资源多;
- 页面内容更新频率不高;
- 首页、文章页、栏目页可缓存;
- 源站 CPU 不是很高;
- 主要慢在图片、CSS、JS;
cf-cache-status长期不是HIT。
这时优先做:
缓存规则
图片压缩
Brotli
HTTP/3
静态资源长缓存
页面边缘缓存
适合升级服务器的情况
- TTFB 长期高于 1 秒;
- 后台操作很慢;
- MySQL 查询慢;
- PHP-FPM 经常满;
- 磁盘 IO 高;
- 源站带宽打满;
- 高峰期负载持续很高;
- Cloudflare MISS 时源站扛不住。
这时要考虑升级到更适合 Web 业务的物理服务器。
推荐方向:
高主频 CPU
足够内存
NVMe SSD
优质回国线路
稳定 BGP 带宽
Redis / MySQL 优化
对于 WordPress、企业官网、外贸站,CPU 不一定要盲目堆核心。
很多时候,高主频 CPU + NVMe SSD + Redis + 合理缓存,比一台低主频多核心服务器更有效。
十二、推荐的服务器选型思路
1. 小型企业官网 / 个人站长
CPU:Intel Xeon E3-1271 v3 / E-2334
内存:16GB
硬盘:480GB SSD / 960GB NVMe
带宽:100M BGP + 25M CN2
系统:Ubuntu 22.04
适合:企业展示站、博客、小型 WordPress
优化重点:
- Cloudflare 静态资源缓存;
- WordPress 页面缓存;
- 图片压缩;
- Redis 可选;
- 不要安装过多插件。
2. 中型 WordPress / 外贸网站
CPU:AMD EPYC 4585PX,16核32线程
内存:32GB / 64GB
硬盘:960GB NVMe PCIe Gen4 SSD
带宽:100M BGP + 25M CN2
系统:Ubuntu 22.04 / Debian 12
适合:外贸独立站、内容站、企业官网、产品展示站
优化重点:
- Redis Object Cache;
- Nginx FastCGI Cache;
- MySQL 慢查询优化;
- Cloudflare 页面规则;
- 图片 WebP;
- 后台与前台缓存隔离。
3. 大流量图片站 / 下载站
CPU:AMD EPYC 7402P,24核48线程
内存:64GB / 128GB
硬盘:960GB NVMe + 大容量存储盘
带宽:300M / 500M / 1G BGP
系统:Debian 12
适合:下载站、资源站、图片站、素材站
优化重点:
- 大带宽;
- 热点资源缓存;
- Nginx 静态文件优化;
- 下载限速;
- 分域名管理;
- 源站 IO 监控。
4. API / SaaS / 高并发业务
CPU:AMD EPYC 4585PX / EPYC 7402P
内存:64GB / 128GB
硬盘:NVMe SSD
带宽:100M - 500M BGP
系统:Ubuntu 22.04
适合:API、SaaS、企业后台、会员系统
优化重点:
- 不盲目全站缓存;
- API 限速;
- Redis 缓存热点数据;
- MySQL 主从或独立数据库;
- Cloudflare WAF 精细规则;
- 监控接口 P95 / P99 延迟。
十三、最终建议:不要问“Cloudflare 有没有开”,要问“Cloudflare 有没有命中关键内容”
Cloudflare 开了还是慢,最核心的问题通常不是“有没有开”,而是下面几个问题:
- HTML 页面有没有缓存?
- 静态资源有没有命中?
- 源站 TTFB 是否正常?
- 源站线路是否适合你的用户地区?
- 服务器 CPU、内存、磁盘 IO 是否够用?
- WordPress、数据库、PHP 是否优化过?
- 首页资源是否太大?
- 安全规则是否误伤访问?
- 国内用户是否真的适合全部走 Cloudflare?
- 高峰期源站带宽是否打满?
如果只是企业官网、博客、内容站,Cloudflare 配合页面缓存,效果会很明显。
如果是电商、后台、API、会员系统,Cloudflare 只能优化一部分静态和安全层,真正的速度还是要靠源站性能、数据库优化和线路质量。
我的建议是:
静态资源交给 Cloudflare;
动态页面靠源站性能;
国内访问重视 CN2 / BGP 优化线路;
高并发业务重视 CPU、内存、NVMe 和数据库;
不要把所有慢的问题都归给 CDN。
一句话总结就是:
Cloudflare 能让“已经适合缓存的内容”更快,但不能把一台慢源站、慢数据库、慢线路,直接变成高性能架构。真正稳定的网站加速,一定是 Cloudflare、服务器硬件、线路质量、缓存规则和程序优化一起做。