nginx - 在http PUT或POST上清除缓存

时间:2011-10-10 19:49:01

标签: caching nginx

我正在使用REST资源(Spring MVC + ETag)测试nginx作为反向代理缓存。每个GET都缓存好了。

是否可以在通过HTTP PUT或HTTP POST更新特定资源时清除nginx缓存?

ps:我也在测试清漆缓存,但我有同样的疑问。

谢谢!

1 个答案:

答案 0 :(得分:0)

由于Nginx中有多个选项,您尚未指定要实现的缓存类型。

从您的查询中,我假设您指的是静态文件,例如上传到您网站的图片。

  1. 代理缓存 这是Nginx从后端服​​务器缓存响应的地方。首先激活静态文件是没有意义的。代理缓存只是硬盘上的一个存储,检索此类文件的成本与您只是让Nginx从文件系统上的实际位置为它们提供服务的成本相同。

  2. FastCGI缓存 与代理缓存相同。对于可以使用POST或PUT上传的文件类型没有意义。

  3. 内存缓存 这里,项目存储在RAM中,这样做有好处。有基本的Memcache和扩展的Memc模块,它们都有添加和删除缓存的过程。

  4. 然而,您的查询建议您使用前两个中的一个,如上所述,对于可以使用POST或PUT上传的文件类型,这样做绝对没有任何好处。当在Nginx中缓存时,它们将从光盘位置读取,它们将保持打开,就像从原始光盘位置引用一样。还有将它们从原始光盘位置复制到另一个光盘位置的开销。

    当然,如果我遗失了什么。