前言:数字时代的“驿站”与“快马”

在古代,驿站系统让信息传递快马加鞭,而今天,Cloudflare与Nginx的缓存优化,正是现代网站的“数字驿站”。本教程将带您配置静态资源长期缓存、动态页面智能缓存,以及敏感路径保护,让您的WordPress网站如离弦之箭,飞速加载。

适用环境

✔ 域名托管于Cloudflare(橙色云代理开启)
✔ WordPress运行在OpenResty/Nginx(如1Panel面板)
✔ 已准备好服务器终端访问权限

博客图片8

第一步:Nginx缓存配置

目标:打造“静态资源保险库”——让CSS、JS、图片等静态资源长期缓存,减少重复请求。

1. 编辑Nginx配置文件

在1Panel面板中,进入 网站 → 选择站点 → 配置文件(如nginx.conf) ,在server块内添加以下规则:

Bash
# 添加静态资源(CSS/JS/图片等)——365天缓存
location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg|webp|woff2)$ {
    expires 365d;
    add_header Cache-Control "public, immutable";
    access_log off;
    # 隐藏干扰头
    proxy_hide_header Set-Cookie;
    proxy_hide_header Pragma;
}

# 添加动态页面(首页/分类页/标签页)——10分钟缓存
location ~ ^/$|/page/|/category/|/tag/ {
    add_header Cache-Control "public, max-age=600, stale-while-revalidate=300";
}

# 添加禁止缓存后台和敏感路径(如/wp-admin/)
location ~* ^/(wp-admin|wp-login|xmlrpc.php|my-account) {
    add_header Cache-Control "no-cache, no-store, must-revalidate";
    expires 0;
}

# PHP请求处理(保持原有配置,仅添加缓存头)
location ~ [^/]\.php(/|$) {
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi-php.conf;
    include fastcgi_params;
    # 添加缓存头-动态缓存控制
    add_header Cache-Control "public, max-age=600";
}

2. 重载Nginx配置

Bash
openresty -t && openresty -s reload

效果:静态资源就像“图书馆的藏书”,适合长期缓存;动态页面就像“每日更新的报纸”,适合短时更新;后台路径则完全绕过缓存,确保安全。


第二步:Cloudflare缓存规则

Cloudflare的Cache Rules如同智能的“流量调度员”,让缓存策略更灵活,避免一刀切。

通过规则→概述→Cache Rules→创建规则,进入缓存规则创建界面

cache rules设置1

1. 静态资源缓存(1年)

  • 规则名称:Cache Static Assets
  • 匹配条件:
Bash
  (http.request.uri.path contains "/wp-content/") 
  and 
  (http.request.uri.path ext in ("css" "js" "png" "jpg" "webp"))
  • 操作:
    • 边缘TTL:1年
cache rules设置2
cache rules设置3

2. 动态页面缓存(10分钟)

  • 规则名称:Cache Dynamic Pages
  • 匹配条件:
Bash
  (http.request.uri.path in {"/" "/category/*" "/tag/*"})
  • 操作:
    • 边缘TTL:10分钟
cache rules设置4

3. 绕过敏感路径(如后台)

  • 规则名称:Bypass Admin
  • 匹配条件:
Bash
  (http.request.uri.path contains "/wp-admin/") 
  or 
  (http.cookie contains "wordpress_logged_in")
  • 操作:绕过缓存
cache rules设置5

第三步:验证缓存状态

1. 静态资源验证

Bash
curl -I https://yourDomain.com/wp-content/themes/YourTheme/style.css

预期输出:

Bash
HTTP/2 200 
CF-Cache-Status: HIT
Cache-Control: public, max-age=31536000, immutable

2. 动态页面验证

Bash
curl -I https://yourDomain.com/

可能结果:

  • 已缓存:CF-Cache-Status: HIT
  • 未缓存:CF-Cache-Status: DYNAMIC

3. 后台路径验证

Bash
curl -I https://yourDomain.com/wp-admin/ --cookie "wordpress_logged_in=123"

预期输出:

Bash
CF-Cache-Status: BYPASS
Cache-Control: no-store

第四步:故障排查

  • 问题:CF-Cache-Status: DYNAMIC
    解决:检查Cache Rules是否匹配目标路径
  • 问题:CF-Cache-Status: BYPASS
    解决:确认请求未携带Cookie或访问敏感路径
  • 问题:缓存未更新
    解决:手动清除Cloudflare缓存或修改文件名
cloudflare缓存清理

结语:速度与安全的平衡

✅ 静态资源:1年缓存,减少90%请求
✅ 动态页面:10分钟缓存,平衡实时性与速度
✅ 后台路径:完全绕过缓存,确保安全

正如《孙子兵法》所言:“兵贵神速。” 优化后的WordPress网站,加载速度显著提升,同时关键路径仍受保护。

By 天海牧歌

东庵每见西庵雪,下涧长流上涧泉。 半夜白云消散后,一轮明月到窗前。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注