SSI(服务器端包含)和 ESI(边缘端包含)之间的主要区别

SSI(服务器端包含)和 ESI(边缘端包含)之间的主要区别

我需要在 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!

相关内容