我有一个rest-api,我将使用一些基本的模板语言来渲染html。我想知道是否有任何好的平台或服务来预呈现HTML文件并静态服务它们。用于性能和可伸缩性。
我需要像每24小时一样预先渲染页面,并且还应该可以告诉系统以某种方式重新呈现特定页面。我对大多数开源语言感到满意,节点很受欢迎。
答案 0 :(得分:0)
在我看来,最直接的方法是使用两层:渲染服务器和缓存服务器。当缓存服务器启动时,它将遍历渲染服务器上的每个URL并将预渲染的HTMLS文件存储到其本地目录中。为简单起见,您可以镜像"目录结构"并使资源路径相同。换句话说,对于渲染服务器上的每个URL,如下所示:
http://render.xyz/path/to/resource
您在缓存服务器上创建目录结构/path/to
并在其中放置文件resource
。
您的最终用户不需要了解此架构。他们向缓存服务器发出如下请求:
http://cache.xyz/path/to/resource
缓存服务器为他们提供他们正在寻找的结果。
有很多方法可以告诉缓存服务器刷新(重新生成)页面。你可以添加一个"隐藏"目录,我们称之为.cache-command
,并使用它来处理刷新请求。例如,要告诉缓存服务器刷新资源,您可以使用如下URL:
http://cache.xyz/.cache-command/refresh/path/to/resource
当缓存服务器收到该请求时,它将刷新资源。
此方法的一个优点是您的缓存服务器可以完全独立于渲染服务器。它们可以用不同的语言编写,在不同的硬件上运行,也可以是同一个nodejs应用程序的一部分。什么都适合你。