繁体   English   中英

使Nginx缓存尊重缓存控制标头

[英]Make Nginx caching respect cache-control headers

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

有没有一种方法可以根据上游应用程序服务器中的缓存控制标头自动清除Nginx?

在研究了这个问题之后,我发现它没有被很好地记录下来,因为大多数人似乎都在关注CMS,因为它很容易说“一天缓存文章”,但是对于动态应用程序服务器却很少,后者可能会根据每个请求而有所不同。

有几种选择:

  • Nginx Plus
  • Ngx缓存清除模块 ,尽管两年来没有任何更新
  • 定义多个具有不同到期时间的缓存,并在可能的情况下按路径不同地应用它们。
  • 忘记在Nginx上缓存,并在其前面放置一个类似Varnish的服务器。

更新:进一步看,我现在认为甚至不需要存在proxy_cache_valid。 如果没有来自上游的缓存控制/过期,它只会设置默认过期。 如果没有proxy_cache_valid,Nginx仍将内容视为过时的,但不会立即清除。 它将过时的内容保留在缓存中的原因(由“非活动”参数以及可选的proxy_cache_valid确定)是因为它可以使用proxy_cache_use_stale服务过时的内容(如果上游有错误,则很有用)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM