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分钟缓存,平衡实时性与速度

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

相关推荐
_dindong2 小时前
Linux网络编程:进程间关系和守护进程
linux·运维·服务器·网络·c++·学习
Jtti3 小时前
如何通过检查MySQL与系统日志以找出服务器CPU占用源
服务器·mysql·adb
zt1985q3 小时前
本地部署消息中间件 RabbitMQ 并实现外网访问 (Linux 版本)
linux·运维·服务器·windows·分布式·rabbitmq
tb_first3 小时前
Linux入门2(1/3)
linux·运维·服务器
Ghost Face...4 小时前
深入解析U-Boot命令系统
linux·运维·服务器
心灵宝贝4 小时前
申威服务器安装Nacos 2.0.3 RPM包详细步骤(Kylin V10 sw_64架构)附安装包
服务器·架构·kylin
ajax_beijing4 小时前
当同一个弹性云服务器所在子网同时设置了snat和弹性公网IP时,会优先使用哪个
linux·运维·服务器
随风语4 小时前
云计算与服务器
运维·服务器·云计算
wanhengidc4 小时前
服务器受到网络攻击该怎么办
服务器·arm开发·智能手机·玩游戏
wanhengidc4 小时前
服务器会遭受到哪些网络攻击
运维·服务器