在 WordPress 上设置 Cloudflare CDN

Cloudflare 是全球最受欢迎的 CDN(内容分发网络)与网络安全服务——免费使用,能让 WordPress 网站加载更快、减少带宽消耗、抵御 DDoS 攻击,并自动提供免费 SSL 证书。本指南将带您从零开始完成全套设置,逐步走过域名服务器配置、SSL 模式选择、缓存规则设定等每一个关键步骤。

1. 认识 Cloudflare CDN 及其工作原理

CDN(内容分发网络,Content Delivery Network)是由遍布全球的服务器构成的网络。当访客打开您的 WordPress 网站时,Cloudflare 会从距离访客最近的边缘服务器(Edge Server)提供静态文件(图片、CSS、JavaScript),而不是每次都从您的托管服务器直接获取所有内容。这个过程看似简单,却能带来显著的性能提升和成本节约。

Cloudflare 作为反向代理工作,这意味着它坐在您的访客与您的源服务器之间。当用户请求页面时,请求先到达 Cloudflare 的全球网络,Cloudflare 判断这个内容是否已缓存,如果已缓存就直接返回;如果没有缓存,才会转发给您的源服务器,获取内容后缓存并返回给用户。这种做法不仅加快了用户的访问速度,还显著减少了源服务器的负载。

使用 Cloudflare 的核心优势:

2. 注册 Cloudflare 并添加您的域名

设置 Cloudflare 的第一步是创建账户并添加您的域名。这个过程通常只需要 5-10 分钟完成。

  1. 前往 cloudflare.com 点击「Sign Up」创建免费账户
  2. 使用电子邮件和密码注册,或通过 Google/GitHub 快速登录
  3. 登录后点击 「Add a Site」 或 「Add Domain」
  4. 输入您要保护的域名(例如 example.com,不需要输入 www 前缀)
  5. 选择 「Free Plan」(免费套餐对大多数 WordPress 网站已足够)
  6. Cloudflare 会自动扫描您现有的 DNS 记录——这个过程通常需要 1-2 分钟
  7. 仔细检查导入的 DNS 记录,特别要确保:
    • A 记录(指向您主机的 IP 地址)已正确导入
    • MX 记录(邮件服务器记录)完整无缺
    • 其他重要的 DNS 记录(如 TXT 记录用于验证)已导入
  8. 复制 Cloudflare 提供的 2 个域名服务器地址,格式通常是 xxx.ns.cloudflare.com 和 yyy.ns.cloudflare.com

3. 在域名注册商处更换域名服务器

这是整个设置过程中最关键的一步。您需要告诉您的域名注册商(无论是 AsiaGB、GoDaddy、Namecheap 还是其他注册商)将 DNS 解析权转交给 Cloudflare。

详细步骤:

  1. 登录您的域名注册商账户(例如 AsiaGB 的管理面板)
  2. 找到您要设置的域名,进入该域名的 DNS 设置或域名管理页面
  3. 找到「域名服务器(Nameservers)」或「Name Servers」设置选项
  4. 删除旧的域名服务器地址(通常有 2-3 个)
  5. 输入 Cloudflare 提供的 2 个新的域名服务器地址
  6. 保存更改——这个操作很重要,必须确认保存
  7. 回到 Cloudflare 管理界面,点击 「Done, check nameservers」 让 Cloudflare 验证

DNS 生效时间(Propagation):域名服务器更改通常需要 15 分钟至 24 小时才能在全球 DNS 系统中完全生效。但在大多数情况下,您会在 30-60 分钟内看到变化。这期间您的网站仍然可以正常访问和使用,不会造成任何停机。可以在 whatsmydns.net 输入您的域名来实时查看 DNS 传播进度。

4. 配置 SSL 模式:选择正确的加密方式

SSL 模式是 Cloudflare 与您的源服务器之间通信的加密方式。选择错误的模式会导致访问错误或安全问题,因此这一步必须正确理解。

Cloudflare 提供三种 SSL 模式,从低到高的安全性排列如下:

模式安全性适用场景说明
灵活(Flexible) 低 您的源服务器上没有 SSL 访客到 Cloudflare 使用 HTTPS,但 Cloudflare 到源站使用 HTTP(不加密)。不推荐用于包含敏感数据的网站。
完全(Full) 中等 源服务器有 SSL,可以是自签名证书 访客到 Cloudflare 和 Cloudflare 到源站的连接都加密,但不验证证书有效性。可用于内部测试环境。
完全(严格)Full (Strict) 最高 源服务器有由受信任的 CA 颁发的有效 SSL 证书(推荐) 完整的端到端加密,Cloudflare 验证源站证书的真实性和有效性。这是最安全的选项,应该作为首选。

对于 AsiaGB Hosting 用户:AsiaGB 在所有主机套餐上都包含来自 Let's Encrypt 的免费 SSL 证书,并通过 DirectAdmin 控制面板自动管理。因此,我们强烈推荐设置为 「Full (Strict)」模式,这样可以获得最高级别的安全性。

⚠️ 避免重定向循环错误:这是一个常见的陷阱——如果您的 WordPress 网站已经启用了 SSL(HTTPS),但错误地将 Cloudflare 设置为「灵活」模式,就会导致重定向循环错误(ERR_TOO_MANY_REDIRECTS)。原因是 WordPress 被配置为强制 HTTPS,而 Cloudflare 以 HTTP 连接源站,两者产生冲突。解决办法是将 SSL 模式改为「完全」或「完全(严格)」。

5. 为 WordPress 安装并配置 Cloudflare 插件

虽然 Cloudflare 在 DNS 层面工作不需要特殊插件,但安装 WordPress 插件可以让集成更顺畅,功能更完善。

选项 1:使用 Cloudflare 官方插件(推荐)

选项 2:手动配置源 IP 识别

如果您不想安装插件,可以在 wp-config.php 文件中添加以下代码。这样做的目的是让 WordPress 能够正确识别访客的真实 IP 地址,而不是 Cloudflare 边缘节点的 IP。

if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
}

将这段代码添加到 wp-config.php 文件的末尾(在 /* That's all, stop editing! */ 这行之前)。

选项 3:使用第三方缓存插件集成

流行的 WordPress 缓存插件如 WP Rocket、LiteSpeed Cache 和 WP Super Cache 都内置了与 Cloudflare 的集成。这些插件不仅可以管理您本地的 PHP 缓存,还能自动清除 Cloudflare 的缓存。选择这个选项可以实现最全面的缓存管理。

6. 为 WordPress 设置页面规则和缓存规则

页面规则允许您为特定的 URL 或路径设置不同的 Cloudflare 行为,这对于 WordPress 网站尤其重要,因为并不是所有内容都应该被缓存。

推荐的页面规则设置

URL 模式缓存设置目的说明
yourdomain.com/wp-admin/* 缓存级别:绕过 不缓存后台管理页面 WordPress 管理界面必须实时加载,缓存会导致数据不一致
yourdomain.com/wp-login.php 缓存级别:绕过 不缓存登录页面 登录页面涉及用户认证,不能使用缓存
yourdomain.com/*.php 缓存级别:绕过 不缓存所有 PHP 动态页面 确保 PHP 脚本总是被实时执行,避免缓存导致的功能异常
yourdomain.com/wp-content/uploads/* 缓存级别:缓存所有 缓存上传的媒体文件 图片和文件等静态资源应该被积极缓存以提升速度

针对 WooCommerce 在线商店的额外规则

如果您的 WordPress 网站运行 WooCommerce 电商插件,需要额外配置这些路径:

7. 使用 Cloudflare Cache Rules 实现高级缓存控制

Cloudflare Cache Rules 是一个比 Page Rules 更灵活的功能,允许您基于更复杂的条件设置缓存行为。这对于优化 WordPress 性能特别有用。

设置推荐的 Cache Rules:

  1. 登录 Cloudflare 管理面板,进入您的域名
  2. 进入「Caching」→「Cache Rules」菜单
  3. 创建新 Rule 1:跳过已登录用户的缓存
    • 条件:当 Cookie 包含 wordpress_logged_in 时
    • 操作:Cache Level 设为 Bypass(绕过)
    • 目的:已登录的 WordPress 用户看到的内容是个人化的,不应该使用通用缓存
  4. 创建新 Rule 2:长期缓存静态资源
    • 条件:URI Path 包含 /wp-content/uploads/(媒体文件)
    • 操作:Edge TTL 设为 30 天或更长
    • 目的:已上传的媒体文件很少变化,应该被长期缓存
  5. 创建新 Rule 3:对首页和存档页应用标准缓存
    • 条件:URI Path 不包含 /wp-admin/ 和 .php
    • 操作:Cache Level 设为 Standard,Edge TTL 设为 1 小时
    • 目的:主要内容页面应该被缓存,但不会太久以确保更新的文章能快速显示

8. 清除缓存——在发布或更新内容时

每当您在 WordPress 上编辑、发布或更新内容时,应该清除相关的 Cloudflare 缓存,以确保访客能够看到最新版本。

有三种清除缓存的方式:

9. 优化 WordPress 与 Cloudflare 的配合

为了获得最佳性能,还有一些额外的设置需要调整。

启用 Rocket Loader 加速 JavaScript

Cloudflare 的 Rocket Loader 功能能够延迟加载 JavaScript,使初始页面加载更快。在 Cloudflare 控制面板的 Speed 设置中启用此功能。注意:某些复杂的 JavaScript 可能与 Rocket Loader 不兼容,如果出现功能异常可以禁用。

启用自动缩小化(Auto Minify)

Cloudflare 可以自动缩小您的 CSS、JavaScript 和 HTML 文件,移除不必要的字符来减少文件大小。这个功能通常很安全,可以放心启用。

启用 Brotli 压缩

Brotli 是一种比 Gzip 更高效的压缩算法。Cloudflare 自动支持 Brotli,只需在浏览器支持的情况下启用,可以进一步减少传输的数据量。

10. 监控性能与故障排除

设置完成后,您应该监控网站的性能,看看是否达到了预期的改进。

使用 Cloudflare Analytics 分析数据

Cloudflare 提供免费的 Analytics 面板,显示您的流量统计、缓存命中率、DDoS 攻击防护等信息。如果发现缓存命中率低于 50%,可能需要调整缓存规则。

使用 Google PageSpeed Insights

访问 pagespeed.web.dev 输入您的 WordPress 网站 URL,可以获得 Google 对性能的评分和改进建议。通常,使用 Cloudflare 后性能分数会有明显提升。

常见问题解决

总结:Cloudflare CDN 是 WordPress 网站最具成本效益的性能优化工具。完整设置只需要 30-60 分钟,但带来的收益是长期的:网站加载速度更快(特别是对国际访客),源站带宽消耗减少 50-70%,安全性大幅提升,而且完全免费。即使是最小的 WordPress 网站也值得部署 Cloudflare。

需要一个完全支持 Cloudflare 的 WordPress 主机?

AsiaGB 主机完全兼容 Cloudflare,所有套餐都包含来自 Let's Encrypt 的免费 SSL 证书,通过 DirectAdmin 控制面板即可管理。您可以从第一天起就使用「完全(严格)」SSL 模式,充分发挥 Cloudflare 的安全性优势。

查看主机套餐 →