Nginx缓存为什么清除不掉

用Nginx做静态资源服务器,但是发现一个悲剧。
我已经更新了root目录下的资源文件,是个css文件,但是访问的时候还是个旧的。
肯定不是浏览器缓存,换了浏览器了已经。。。
Nginx重启了都不行,Nginx缓存怎么这么诡异,怎么办。

阅读 48.4k
6 个回答

首先,你肯定是配置了proxy_cache_path,nginx如果没有配置这个参数,是不会缓存任何文件的。
要清除配置,要删除proxy_cache_path配置的目录下的所有文件。

find /proxy/cache/path -type f -delete

重启Nginx是没用的

如果你是在用virtualBox 那有可能是这个原因

VirtualBox Hates Sendfile
修改配置 sendfile off;

nginx的缓存服务proxy_cache不能清除指定的URL缓存,只能设置URL过期时间,要清除指定URL可以用nginx第三方模块ngx_cache_purge。
nginx安装时需要将ngx_cache_purege加载进去。

./configure --user=www --group=www --add-module=/root/dxm/nginx/ngx_cache_purge-1.2
新手上路,请多包涵

谢谢楼上的!我的就是这个问题导致的,把sendfile改成OFF后就好了!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏