WordPress安全加速:Cloudflare + Nginx缓存优化方案

转载地址: WordPress安全加速:Cloudflare + Nginx缓存优化方案

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

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

适用环境

✔ 域名托管于Cloudflare(橙色云代理开启)

✔ WordPress运行在OpenResty/Nginx(如1Panel面板)

✔ 已准备好服务器终端访问权限


第一步: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配置

复制代码
openresty -t && openresty -s reload

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


第二步:Cloudflare缓存规则

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

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

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

  • 规则名称:Cache Static Assets
  • 匹配条件:
lua 复制代码
  (http.request.uri.path contains "/wp-content/") 
  and 
  (http.request.uri.path ext in ("css" "js" "png" "jpg" "webp"))
  • 操作:

    • 边缘TTL:如果存在,使用缓存控制标头,如果不存在,使用 Cloudflare 的默认 TTL 缓存请求来获取响应状态

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

  • 规则名称:Cache Dynamic Pages
  • 匹配条件:
lua 复制代码
  (http.request.uri.path in {"/" "/category/*" "/tag/*"})
  • 操作:

    • 边缘TTL:10分钟

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

  • 规则名称:Bypass Admin
  • 匹配条件:
sql 复制代码
  (http.request.uri.path contains "/wp-admin/") 
  or 
  (http.cookie contains "wordpress_logged_in")
  • 操作:绕过缓存

第三步:验证缓存状态

1. 静态资源验证

bash 复制代码
curl -I https://yourDomain.com/wp-content/themes/YourTheme/style.css

预期输出:

arduino 复制代码
HTTP/2 200 
CF-Cache-Status: HIT
Cache-Control: public, max-age=31536000, immutable

2. 动态页面验证

arduino 复制代码
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"

预期输出:

yaml 复制代码
CF-Cache-Status: BYPASS
Cache-Control: no-store

第四步:故障排查

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

结语:速度与安全的平衡

✅ 静态资源:1年缓存,减少90%请求

✅ 动态页面:10分钟缓存,平衡实时性与速度

✅ 后台路径:完全绕过缓存,确保安全

相关推荐
Dxy123931021618 小时前
Python的正则表达式入门:从小白到能手
服务器·python·正则表达式
小周学学学18 小时前
vSphere DRS与vSphere HA
运维·服务器·vmware·虚拟化
德迅云安全—珍珍18 小时前
主机安全-德迅卫士
linux·服务器·安全
咕噜企业分发小米18 小时前
如何平衡服务器内存使用率和系统稳定性?
java·服务器·前端
2301_8059629318 小时前
Windows连接腾讯云服务器
服务器·windows·腾讯云
云动课堂18 小时前
一键升级 OpenSSH 10到最新版:告别手工编译、兼容国产系统、批量部署无忧!
linux·服务器·centos
倔强的小石头_19 小时前
Python 从入门到实战(八):类(面向对象的 “对象模板”)
服务器·开发语言·python
小周学学学19 小时前
vcenter的SMB备份
运维·服务器·vmware·虚拟化
qq_3106585119 小时前
mediasoup源码走读(十二)——router
服务器·c++·音视频
BullSmall19 小时前
Apache Doris 精细化调优配置指南
linux·运维·服务器·database