我需要在 Web 服务器级别将动态内容包含到静态页面中。到目前为止,我发现了 2 个选项:Server Side Include (SSI)
和Edge Side Include (ESI)
。
虽然起源SSI
似乎古老而模糊(即伊利诺伊大学 95 年的缓存页面似乎是参考,显然它来自NCSA httpd
曾经为 95% 的网络提供动力的网络服务器),似乎ESI
更为近期和令人欣喜(2001 年的 w3 规范,主要由 Akamai 的人员编写)。
此外,我不断听到Varnish
+ESI
我想知道这是否是可行的方法。不过我已经设置好了nginx
,仅支持SSI
,并希望遵循该原则,尽可能KISS
避免使用。Varnish
对于我目前的用例,即在每个页面顶部包含一个动态用户栏,我相信SSI
可以完成这项工作。然而,我担心随着我的网站的发展,我将需要仅由其支持的功能,ESI
这将迫使我重新设计所有内容,这让我想到了我的问题(最后读者说):
不支持的主要功能是什么SSI
,会让您选择哪些ESI
(反之亦然)?
答案1
SSI 和 ESI 的标签非常相似,因此我不会太担心这一点。无论如何,Varnish 仅支持 ESI 的最基本用法。
因为您拥有 SSI 和 nginx,所以请使用它们,并且如果您需要 Varnish 的缓存,那么只需一个简单的 shell 脚本即可将 SSI 更改为 ESI。
答案2
Varnish 就是为此而设计的,因此使用 Varnish 管理缓存时,与 Nginx 相比,您将拥有更多的选项(即使 Nginx 有很多内置选项)。
由于 Nginx 总是能满足我的需求(简单的片段缓存、代理、良好的速度……)我从未尝试过 Varnish!