有这样的需求,客户上传图片,覆盖以前的图片,因为客户可能会频繁的换图片,上传覆盖完后,页面会自动请求刚才的图片,图片已经换掉,但是url并没有换,因为图片名字没改。

因为更新的图要及时显示所以这个目录里的图片过期时间是

location ~ .*\path\.(jpg|png|jpeg)$
{
expires ;
}

但是并没有出现更新,浏览器依然会用本地的缓存。

抓包发现,浏览器发现图片过期并发送了请求带有If-Modified-Since,得到的是304且Last-Modified时间没变,也就是说nginx说此图片没有更改,浏览器就用本地缓存了。但是通过stat命令发现此图片modify时间已经变化,确实更改了。

超找原因,发现是open_file_cache选项,open_file_cache max=102400 inactive=20s;

open_file_cache 指令会对以下信息进行缓存:
* 打开文件描述符的文件大小和修改时间信息
* 存在的目录信息
* 搜索文件的错误信息:文件不存在无权限读取等信息

max指定缓存数量   inactive是指经过多长时间文件没被请求后删除缓存。我指定了20s,所以等到至少20s不访问这个文件,相应缓存的这个文件的更改信息才会被删除。

open_file_cache_valid 30s;

#这个是指多长时间检查一次缓存的有效信息。也就是说即使我一直访问这个文件,30s后会检查此文件的更改信息是否变化,发现变化就更新。

open_file_cache_min_uses 1;

#指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件更改信息一直是在缓存中打开的。

最新文章

  1. WebBrowser处理AJAX生成的网页内容!
  2. C#爬页面总结
  3. SQL注入原理小结
  4. Vue.2.0.5-单文件组件
  5. C#代码开发规范
  6. 向Array中添加归并排序
  7. 用Shell实现俄罗斯方块代码(Tetris.sh)
  8. Fiddler对安卓应用手机抓包图文教程
  9. 1057 - Collecting Gold (状态压缩DP)
  10. LeetCode——Pascal's Triangle
  11. lightoj 1038 Race to 1 Again
  12. 考试easy该,学习如何做?
  13. 项目管理实践教程一、工欲善其事,必先利其器【Basic Tools】
  14. [python爬虫]Requests-BeautifulSoup-Re库方案--robots协议与Requests库实战
  15. 阿里云RDS读写分离数据查询延迟解决
  16. [LeetCode] 112. Path Sum ☆(二叉树是否有一条路径的sum等于给定的数)
  17. JTable 查询
  18. 【贪心算法】POJ-2376 区间问题
  19. nodejs 剪切图像在上传,并保存到指定路径下(./public/img/' + req.session.token + '.jpg‘)
  20. 如何在service实现弹出对话框

热门文章

  1. javaweb常识
  2. POJ1484(Blowing Fuses)--简单模拟
  3. nodejs入门API之url模块+querystring模块
  4. 从graphql endpoint获取schema文件
  5. 浏览器获取当前ip
  6. jade继承
  7. mongodb模式模型设计及编码-Mongoose
  8. Python基本语法变量
  9. 移动Web前端开发 3移动web开发现状
  10. tomcat web的URL解析(web.xml)