上一篇 下一篇 分享链接 返回 返回顶部

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

发布人:Minchunlin 发布时间:2026-05-02 08:32 阅读量:1917

一、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 一直是 MISSBYPASSDYNAMIC

所以判断“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 只是站在前面转发了一次请求,真正慢的地方还是源站和程序。

后来我们做了三件事:

  1. 给首页、栏目页、文章页配置边缘缓存;
  2. 把源站从普通低配云服务器换成香港物理服务器
  3. 对 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 -mvmstat
磁盘 IO 慢 后台、数据库查询慢 iostat -x 1
MySQL 查询慢 产品页、搜索页很慢 慢查询日志
PHP 插件太多 WordPress 页面慢 禁用插件对比
带宽太小 图片、下载、视频加载慢 iftop、带宽图
回源线路差 Cloudflare 到源站慢 MTR、回源测试

3. 国内访问 Cloudflare 普通节点,不一定比直连香港 CN2 更快

这是很多国内站长容易忽略的问题。

如果你的用户主要在中国大陆,使用 Cloudflare 普通 CDN 后,访问路径可能变成:

用户 → Cloudflare 边缘节点 → 源站服务器

但这个 Cloudflare 节点不一定在最优位置,也不一定走 CN2、9929、CMIN2 等优化线路。
有时候直连香港 CN2 服务器可能是:

用户 → 电信/联通/移动优化线路 → 香港源站

反而更短、更稳。

所以对国内访问来说,不能简单认为“套 Cloudflare 一定比直连快”。

对比思路

你可以分别测试:

  1. 直连源站 IP 的 TTFB;
  2. 通过 Cloudflare 域名访问的 TTFB;
  3. 不同地区、不同运营商的 Ping、MTR、HTTP 首包时间;
  4. 晚高峰 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 开了还是慢,最核心的问题通常不是“有没有开”,而是下面几个问题:

  1. HTML 页面有没有缓存?
  2. 静态资源有没有命中?
  3. 源站 TTFB 是否正常?
  4. 源站线路是否适合你的用户地区?
  5. 服务器 CPU、内存、磁盘 IO 是否够用?
  6. WordPress、数据库、PHP 是否优化过?
  7. 首页资源是否太大?
  8. 安全规则是否误伤访问?
  9. 国内用户是否真的适合全部走 Cloudflare?
  10. 高峰期源站带宽是否打满?

如果只是企业官网、博客、内容站,Cloudflare 配合页面缓存,效果会很明显。
如果是电商、后台、API、会员系统,Cloudflare 只能优化一部分静态和安全层,真正的速度还是要靠源站性能、数据库优化和线路质量。

我的建议是:

静态资源交给 Cloudflare;
动态页面靠源站性能;
国内访问重视 CN2 / BGP 优化线路;
高并发业务重视 CPU、内存、NVMe 和数据库;
不要把所有慢的问题都归给 CDN。

一句话总结就是:

Cloudflare 能让“已经适合缓存的内容”更快,但不能把一台慢源站、慢数据库、慢线路,直接变成高性能架构。真正稳定的网站加速,一定是 Cloudflare、服务器硬件、线路质量、缓存规则和程序优化一起做。

目录结构
全文