varnish如何处理动态内容?

Ste*_*n-v 10 caching reverse-proxy varnish

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

各地人们都说你不应该真正缓存可能会发生很大变化的内容,但另一方面,当我查看stackoverflow的响应头时,我看到通过varnish提供的页面.

这里的内容会在第二时间发生变化,所以这个怎么样呢?对不起,如果这是一个简单的问题,我会在这个问题出现时再研究一下.

Ben*_*ann 8

你需要定义动态:

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

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