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


13

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

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

另外,我不断听到Varnish+字ESI,我想知道是否应该这样做。但是,我已经有了一个带有的设置nginx,该设置仅支持SSI并且希望遵循该KISS原理,并Varnish尽可能避免使用。

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

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


除了设计简单之外,您为什么不能同时利用两者?
MikeyB

2
设计的简洁性是我此时不兼顾两者的原因(不是因为我认为它们无法融合在一起,而是因为我没有时间实现和维护两者)。
2012年

据我所知,ESI就像SSI,但是具有更多功能(try-catch等)。
朱利安

Answers:


2

SSI和ESI的标签是如此相似,以至于我不必为此担心太多。无论如何,Varnish仅支持ESI的最基本使用。

既然拥有SSI和nginx,就可以使用它们,如果您需要缓存Varnish,那么从将SSI更改为ESI来说,您只是一个简单的Shell脚本。


1

Varnish是为此目的而设计的,因此与Nginx相比,Varnish具有更多的选项来管理缓存(即使Nginx内置了很多选项)。

由于Nginx总是适合我的需求(简单的片段缓存,代理,良好的速度...),所以我从未尝试过Varnish!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.