Nginx 缓存控制配置的用途说明、详细介绍,以及更精细控制的写法

VFX大学 云计算 Nginx 缓存控制配置的用途说明、详细介绍,以及更精细控制的写法

正在查看 0 条回复
  • 作者
    帖子
    • #254

      追光
      管理员

      Nginx 缓存控制配置的用途说明、详细介绍,以及更精细控制的写法
      📌 作用:
      1. 匹配静态资源:此规则匹配所有 .gif, .jpg, .jpeg, .png, .bmp, .swf 结尾的资源请求。
      2. 设置强缓存:
      • Cache-Control: public, max-age=31536000, immutable 表示这些资源可以被 浏览器和 CDN 缓存,最大缓存时间为 1 年(31,536,000 秒)。
      • immutable 表示该资源不会被修改,浏览器即使刷新页面也不会重新请求,除非 URL 改变(如加版本号)。
      3. 关闭日志:
      • error_log /dev/null; 与 access_log /dev/null; 是为了减少这些静态资源的日志写入,降低磁盘 I/O 与日志体积。

      🧩 精细时间控制写法:

      如果你希望不同类型的文件使用不同缓存策略(如图片缓存一年、字体缓存半年、JS/CSS缓存1天),可以如下分开设置:

      
       # 图片
      location ~* \.(gif|jpg|jpeg|png|bmp|swf)$ {
          add_header Cache-Control "public, max-age=31536000, immutable"; # 1 年
              error_log /dev/null;
              access_log /dev/null;
      }
      
      # 字体
      location ~* \.(woff|woff2|ttf|otf|eot)$ {
          add_header Cache-Control "public, max-age=31536000, immutable"; # 1 年
          error_log /dev/null;
          access_log /dev/null;
      }
      
      
      # 视频
      location ~* \.(mp4|webm|ogv)$ {
          add_header Cache-Control "public, max-age=31536000, immutable"; # 1年 
              error_log /dev/null;
              access_log /dev/null;
      }
      
      
      # 音频
      location ~* \.(mp3|ogg|wav)$ {
          add_header Cache-Control "public, max-age=31536000, immutable"; # 1年 
          error_log /dev/null;
          access_log /dev/null;
      }
      
      
      # CSS/JS
      location ~* \.(css|js)$ {
          add_header Cache-Control "public, max-age=31536000, immutable"; # 1 年
          error_log /dev/null;
          access_log /dev/null;
              }

      关于时间的写法案例:

      # 图片缓存:1年
      location ~* \.(png|jpg|jpeg|gif|ico|webp|bmp)$ {
          add_header Cache-Control "public, max-age=31536000, immutable";
      }
      
      # 字体缓存:半年
      location ~* \.(woff|woff2|eot|ttf|otf)$ {
          add_header Cache-Control "public, max-age=15768000, immutable"; # 6 个月
      }
      
      # JS 和 CSS 缓存:1 天
      location ~* \.(js|css)$ {
          add_header Cache-Control "public, max-age=86400"; # 1 天
      }
正在查看 0 条回复
  • 在下方一键注册,登录后就可以回复啦。