varnish如何处理动态内容?

时间:2016-10-11 14:03:04

标签: caching reverse-proxy varnish

我正在研究缓存,我正在寻找用于缓存的清漆。我想知道varnish如何处理动态生成的内容?

到处都有人说你不应该真正缓存可能会发生很大变化的内容,但另一方面,当我查看stackoverflow的响应标题时,我看到页面是通过清漆提供的。

此处的内容会在第二时间发生变化,所以这是如何工作的?对不起,如果这是一个简单的问题,我会在这个问题出现时再研究一下。

1 个答案:

答案 0 :(得分:8)

您需要定义动态:

  • 如果内容取决于用户(例如通过Cookie),则不应缓存它,因为您将拥有许多不同的内容,并且由于每个用户都有不同的内容,因此您的HIT / MISS配给量不会很高。< / LI>
  • 如果内容随时间变化,您可以随时缓存内容,例如几秒钟。
  • 如果内容随时间变化,更好的选择是将“静态内容”与动态内容分开。您可以缓存页面模板并执行ajax调用以刷新内容。您也可以使用esi,这是一项旧技术,但它允许您在页面中指定不同的“区域”,每个区域都有其缓存持续时间。
  • 您可以从IMS请求中受益。告诉后端仅在自上次请求以来发生更改后才发送响应正文可以节省大量处理时间。我认为清漆是从版本4
  • 做到的

至于stackoverflow架构,你可以在Nick Craver的博客文章中学到很多东西:http://nickcraver.com/blog/2016/02/17/stack-overflow-the-architecture-2016-edition/