我正在使用REST资源(Spring MVC + ETag)测试nginx作为反向代理缓存。每个GET都缓存好了。
是否可以在通过HTTP PUT或HTTP POST更新特定资源时清除nginx缓存?
ps:我也在测试清漆缓存,但我有同样的疑问。
谢谢!
答案 0 :(得分:0)
由于Nginx中有多个选项,您尚未指定要实现的缓存类型。
从您的查询中,我假设您指的是静态文件,例如上传到您网站的图片。
代理缓存 这是Nginx从后端服务器缓存响应的地方。首先激活静态文件是没有意义的。代理缓存只是硬盘上的一个存储,检索此类文件的成本与您只是让Nginx从文件系统上的实际位置为它们提供服务的成本相同。
FastCGI缓存 与代理缓存相同。对于可以使用POST或PUT上传的文件类型没有意义。
内存缓存 这里,项目存储在RAM中,这样做有好处。有基本的Memcache和扩展的Memc模块,它们都有添加和删除缓存的过程。
然而,您的查询建议您使用前两个中的一个,如上所述,对于可以使用POST或PUT上传的文件类型,这样做绝对没有任何好处。当在Nginx中缓存时,它们将从光盘位置读取,它们将保持打开,就像从原始光盘位置引用一样。还有将它们从原始光盘位置复制到另一个光盘位置的开销。
当然,如果我遗失了什么。