Cloudflare和WordPress怎么配合?

域名注册
域名注册 正式会员超兽战士 👑年卡会员
发布于 2026-10-07 09:58 ·2 浏览 ·0 回复

学完这篇,你能把域名接入 Cloudflare,并让 WordPress 在正确缓存、正确 SSL、正确访客 IP 的前提下跑起来。

第一步:把域名接入 Cloudflare(10 分钟)

这一步做完,你的 DNS 解析会交给 Cloudflare 管理,后续所有设置才有地方开。

登录 dash.cloudflare.com,点右上角 Add a site,输入你的域名(例如 example.com),选 Free 套餐,点 Continue。Cloudflare 会自动扫描现有 DNS 记录,扫完后你逐条核对:A 记录指向你服务器 IP 的、CNAME 指向主机的,都要保留;TXT、MX 邮件记录也别删。

核对完点 Continue,页面会给你两个 NS 地址,形如 xxx.ns.cloudflare.com。去你的域名注册商(阿里云、Namecheap、GoDaddy 都行)后台,把域名的 DNS 服务器改成这两个。改完等生效,通常 10 分钟到 24 小时,Cloudflare 面板上域名状态变成 Active 就成功了。

注意:改 NS 之前一定要核对好 MX 记录,否则邮件会断。如果主机商给你的是 CNAME 而不是 IP,别手动改成 A 记录。

第二步:设对 SSL 模式

这一步决定你的网站是 https 正常还是死循环重定向。

进入 SSL/TLS → Overview,加密模式选 Full (Strict)。

然后在 SSL/TLS → Origin Server → Create Certificate 生成一张源站证书,Cloudflare 会给你一段证书内容和一段私钥,把它们装到服务器上(宝塔面板:网站 → SSL → 其他证书,粘贴进去;Nginx 手动配置就写进 ssl_certificate 和 ssl_certificate_key)。

同时把 SSL/TLS → Edge Certificates → Always Use HTTPS 打开,让 http 自动跳 https。

注意:千万别选 Flexible。它让 Cloudflare 用 http 回源,而 WordPress 站点地址是 https,会直接导致「重定向次数过多」。这是新手最常见的坑。

第三步:让 WordPress 拿到访客真实 IP

这一步做完,你的评论、日志、防刷插件才认得出真实访客,而不是一堆 Cloudflare 的 IP。

开启代理(DNS 记录后面那朵云是橙色)后,所有请求的源 IP 都变成 Cloudflare 的。Nginx 需要在 nginx.conf 的 http 块里加:

set_real_ip_from 0.0.0.0/0;
real_ip_header CF-Connecting-IP;

并确认 Nginx 编译了 ngx_http_realip_module(宝塔默认有)。Apache 则用 mod_remoteip,在配置里写 RemoteIPHeader CF-Connecting-IP。改完 nginx -t && nginx -s reload 重载。

第四步:配置缓存规则,别把后台也缓存了

这一步做完,前台页面走 CDN 缓存变快,后台和登录页保持动态不缓存。

进入 Caching → Configuration:Caching Level 选 Standard,Browser Cache TTL 选 4 hours(或 Respect Existing Headers)。

然后进 Caching → Cache Rules → Create rule,建一条绕过规则:

  • 规则名写 bypass-wp
  • 匹配条件:URI Path 包含 /wp-admin/,OR URI Path 包含 wp-login.php,OR Cookie 包含 wordpress_logged_in_
  • 动作选 Bypass cache

保存后,已登录用户和后台请求就不会被缓存了。

注意:不要用「Cache Everything」去缓存全站,除非你很清楚自己在做什么。评论表单、购物车、随机数 nonce 都会出错。

第五步:调优与验证

这一步确认优化项没帮倒忙。

进 Speed → Optimization:Brotli 打开,Early Hints 打开,HTTP/3 打开,Rocket Loader 关闭(它和大量主题的 jQuery 冲突,会导致按钮点不动)。

验证缓存是否生效,在电脑终端跑:

curl -I https://你的域名/
curl -I https://你的域名/wp-login.php

第一条返回 cf-cache-status: HIT 或 MISS 属正常,第二条应该是 BYPASS 或 DYNAMIC。

注意:如果你装了 WP Super Cache、WP Rocket 这类页面缓存插件,就和 Cloudflare 的缓存叠了两层。建议只保留一层,或者把插件的缓存目录在 Cloudflare 里设成不缓存。

小结

  • 接入顺序:加站点 → 核对 DNS → 改 NS → 等 Active。
  • SSL 必须选 Full (Strict) 并在源站装证书,别用 Flexible。
  • 加 set_real_ip_from + real_ip_header CF-Connecting-IP,否则真实 IP 全丢。
  • 用 Cache Rule 绕过 /wp-admin/、wp-login.php 和已登录 Cookie。
  • 关掉 Rocket Loader,避免和主题脚本打架。
  • 用 curl -I 看 cf-cache-status 验证结果。
版权声明:本文来自 GJ站长论坛《Cloudflare和WordPress怎么配合?》
原文链接:https://www.gj0.com/thread-220.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~