使用 Nginx 强制缓存文件

Force cache on files with Nginx

我正在尝试强制缓存此类文件: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;
  }

获取:

Nginx:

谢谢

尝试添加

proxy_cache_valid 200 1d; 

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