宝塔面板配置 Nginx Cache 缓存教程- 不二云
基础教程 2025-05-26 02:11 102

一、全局缓存配置

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状态码  
  • 六、高级调优建议

    1. 内存优化

      open_file_cache max=1000 inactive=20s;  
      fastcgi_cache_lock_timeout 5s;  
    2. 安全增强
      add_header Content-Security-Policy "default-src 'self'";  
      fastcgi_hide_header X-Powered-By;  
    3. 日志分析
      # 统计缓存命中率  
      awk '{print $10}' /www/wwwlogs/access.log | sort | uniq -c  

      注意事项

      1. 修改配置前通过nginx -t验证语法

      2. 多站点需确保每个keys_zone命名唯一

      3. 高流量站点建议将缓存目录挂载至SSD磁盘

      4. 缓存更新策略需与WordPress插件(如W3TC)兼容

      通过此配置可实现:

      • 动态页面加载速度提升300%-500%

      • 服务器负载降低40%-60%

      • SEO评分提升(通过优化TTFB指标)

Powered by ©智简魔方