使用Nginx强制缓存文件

时间:2017-12-15 10:13:49

标签: caching nginx nginx-reverse-proxy

我试图强制缓存此类文件:css,woff,otf,js,jpg,jpeg,gif,png,ico,cur,gz,svg,svgz,mp3,mp4,ogg,ogv和没有扩展名的文件。

我可以缓存一些图像和mp3文件,但其余部分总是处于以下状态:X-Cache MISS

proxy_cache_path /tmp/test keys_zone=test:10m loader_files=300 max_size=4g;

location ~* (^/.*(css|woff|otf|js|jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp3|mp4|ogg|ogv)$|^/web/image.*) {
          proxy_cache test;

          proxy_cache_methods GET HEAD;
          proxy_cache_lock on;

          proxy_ignore_headers Set-Cookie;
          proxy_ignore_headers X-Accel-Expires;
          proxy_ignore_headers Expires;
          proxy_ignore_headers Cache-Control;

          add_header Pragma "public";
          add_header Cache-Control "public";
          add_header X-Cache $upstream_cache_status;
          access_log off;
          expires 12h;

          proxy_pass http://test;
  }

获取:

  • 接受:text / css, / ; q = 0.1
  • 接受编码:gzip,deflate,br
  • 接受语言:es-ES,es; q = 0.8,en-US; q = 0.5,en; q = 0.3
  • 缓存控制:无缓存
  • 连接:keep-alive
  • DNT:1
  • Pragma:no-cache

Nginx的:

  • 缓存控制:max-age = 43200
  • 连接:keep-alive
  • 内容编码:gzip
  • 内容类型:text / css
  • 日期:2017年12月15日星期五,格林威治标准时间10:20:22
  • ETag:W /" XXXXXXXXXX"
  • 到期日:2017年12月15日星期五22:20:22 GMT
  • 服务器:nginx
  • 转移编码:chunked
  • 变化:接受编码
  • X-Cache-Status:MISS
  • X-Content-Type-Options:nosniff

THX

1 个答案:

答案 0 :(得分:0)

尝试添加

proxy_cache_valid 200 1d; 

将http状态为200的所有与您的位置匹配的文件在缓存中保留1天