使Nginx缓存尊重缓存控制头

时间:2016-09-02 08:41:53

标签: performance http caching nginx reverse-proxy

Nginx可以缓存内容,即充当反向代理,但必须在Nginx配置中修复清除时间。

有没有办法根据上游应用服务器的缓存控制头自动清除Nginx?

1 个答案:

答案 0 :(得分:0)

在研究了这个问题之后,我发现它并没有很好地记录,因为大多数人似乎都关注CMS,很容易说“一天缓存文章”,但对于动态应用服务器来说则不那么根据每个请求而有所不同。 / p>

有几种选择:

  • Nginx Plus
  • Ngx Cache Purge module,虽然2年内没有看到任何更新
  • 定义具有不同到期时间的多个缓存,并按路径应用它们(如果可能的话)。
  • 忘记在Nginx上进行缓存,并将Varnish之类的服务器放在它前面。

更新:展望未来,我现在认为甚至不需要存在proxy_cache_valid。如果上游没有缓存控制/到期,它只设置默认到期时间。如果没有proxy_cache_valid,Nginx仍会将内容视为过时,但不会立即清除。它在缓存中保留陈旧内容的原因(使用“非活动”参数和可选的proxy_cache_valid确定)是因为它可以使用proxy_cache_use_stale提供陈旧内容(如果上游有错误,则非常有用)。