SSI(Server Side Include)和ESI(Edge Side Include)的主要区别

Max*_*Max 14 nginx web-server cache varnish

我需要在 Web 服务器级别将动态内容包含到静态页面中。到目前为止,我发现的 2 个选项是Server Side Include (SSI)Edge Side Include (ESI)

虽然起源SSI似乎古老而晦涩(来自伊利诺伊大学 95 的缓存页面似乎是参考,显然它来自NCSA httpd曾经为大约 95% 的网络提供动力网络服务器),但ESI似乎更近更近和令人欣喜(w3 2001 年的规范,主要由 Akamai 的人编写)。

另外,我一直在听说Varnish+ESI并且我想知道这是否应该是要走的路。但是,我已经有了一个设置nginx,它只支持SSI并且希望遵循该KISS原则并Varnish尽可能避免使用。

对于我的直接用例,即在每个页面的顶部包含一个动态用户栏,我相信SSI可以完成这项工作。但是我担心随着我的网站的增长,我将需要仅支持的功能,ESI这将迫使我重新设计所有内容,这让我想到了我的问题(最终读者说):

哪些不支持的主要功能SSI会让您选择ESI(反之亦然)?

Pax*_*Pax 2

SSI 和 ESI 的标签非常相似,因此我不会太担心这一点。不管怎样,Varnish 只支持 ESI 最基本的使用。

使用 SSI 和 nginx,因为您已经拥有它们,并且如果您需要 Varnish 的缓存,只需一个简单的 shell 脚本即可将 SSI 更改为 ESI。