宝塔面板配置 Nginx Cache 缓存教程- 不二云
基础教程
2025-05-26 02:11
103
一、全局缓存配置
1. 修改Nginx主配置文件
操作路径:/www/server/nginx/conf/nginx.conf
http {
# 添加以下内容
fastcgi_cache_path /www/wwwroot/www.yourdomain.com/wp-content/cache/nginx-cache
levels=1:2
keys_zone=your_cache_zone:400m
max_size=4g
inactive=72h
use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
}
参数说明:
-
keys_zone
:每个站点需唯一命名(如asiayun:400m
) -
max_size
:建议不超过磁盘剩余空间的80%二、站点专属配置
1. 修改网站配置文件
操作路径:宝塔面板 > 网站 > 设置 > 配置文件
server { # 禁用默认PHP配置 # include enable-php-74.conf; # 缓存控制逻辑 set $skip_cache 0; if ($request_method = POST) { set $skip_cache 1; } if ($query_string != "") { set $skip_cache 1; } if ($http_cookie ~* "wordpress_logged_in") { set $skip_cache 1; } location ~ [^/]\.php(/|$) { include enable-php-74.conf; fastcgi_cache your_cache_zone; fastcgi_cache_valid 200 301 302 304 72h; add_header X-Nginx-Cache "$upstream_cache_status"; } # 缓存清理接口 location ~ /purge(/.*) { allow 127.0.0.1; deny all; fastcgi_cache_purge your_cache_zone "$scheme$request_method$host$1"; } }
-
三、静态资源优化
1. 扩展缓存策略
# CSS/JS文件 location ~* \.(css|js)$ { expires 30d; add_header Cache-Control "public, immutable"; } # 图片文件 location ~* \.(webp|jpg|png)$ { expires 365d; add_header Vary "Accept-Encoding"; } # 禁止缓存敏感文件 location = /wp-cron.php { expires -1; add_header Cache-Control "no-store"; }
-
四、缓存预热机制
1. 创建定时预热任务
路径:宝塔面板 > 计划任务
#!/bin/bash SITEMAP_URL="https://www.yourdomain.com/sitemap_index.xml" wget -qO- $SITEMAP_URL | grep -Eo '<loc>[^<]+' | sed 's/<loc>//g' | xargs -P 10 -I {} curl -s -o /dev/null {}
-
特性:
-
并行请求(
-P 10
控制并发数) -
静默模式避免日志污染
五、配置验证流程
1. 检查缓存命中
curl -I https://www.yourdomain.com/ | grep X-Nginx-Cache # 预期输出:X-Nginx-Cache: HIT
-
-
2. 测试缓存清理
curl -X PURGE http://localhost/purge/ # 需返回200状态码
-
六、高级调优建议
-
内存优化:
open_file_cache max=1000 inactive=20s; fastcgi_cache_lock_timeout 5s;
- 安全增强:
add_header Content-Security-Policy "default-src 'self'"; fastcgi_hide_header X-Powered-By;
- 日志分析:
# 统计缓存命中率 awk '{print $10}' /www/wwwlogs/access.log | sort | uniq -c
注意事项:
-
修改配置前通过
nginx -t
验证语法 -
多站点需确保每个
keys_zone
命名唯一 -
高流量站点建议将缓存目录挂载至SSD磁盘
-
缓存更新策略需与WordPress插件(如W3TC)兼容
通过此配置可实现:
-
动态页面加载速度提升300%-500%
-
服务器负载降低40%-60%
-
SEO评分提升(通过优化TTFB指标)
-
-