nginx如何在动态网页中间缓存一些块

时间:2016-04-28 09:55:05

标签: caching nginx spring-boot java-8 ssi

我有一个主页,其动态内容因授权/未授权用户而异。我需要在该页面的中间放置一个和“10个顶级实体”。

此块由freemarker生成,并且数据被提取一些对我的数据库来说很重的SQL查询,但结果的生存时间大约是1小时甚至更长。 所以我认为我可以生成阻止并将其缓存在 nginx 级别。

我看到两种方式:

  • 使用 nginx ssi 模块,这可能有助于包含阻止和缓存

  • 设置 onload javascript函数,该函数将再次向HTTP服务器提取阻止

我的问题:处理这种情况的正确方法是什么? 这种情况可能还有另一种方式吗?

1 个答案:

答案 0 :(得分:0)

这完全取决于您的设置和具体情况。

  • 如果已经在项目中使用过,SSI是可行的,如果没有 - 将额外的组件引入项目并不总是一个好的解决方案,尤其是当应用程序逻辑溢出到这些组件上时。

  • 第二个请求最容易实现,在这种情况下,您还可以利用浏览器缓存,这可能会有所帮助

  • 第三个选项是将其缓存在应用程序级别(在共享的memcached / redis / etc中),或者甚至具有物化的数据库视图,以便繁重的查询变得不那么重。