![SSI(服务器端包含)和 ESI(边缘端包含)之间的主要区别](https://linux22.com/image/589495/SSI%EF%BC%88%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E5%8C%85%E5%90%AB%EF%BC%89%E5%92%8C%20ESI%EF%BC%88%E8%BE%B9%E7%BC%98%E7%AB%AF%E5%8C%85%E5%90%AB%EF%BC%89%E4%B9%8B%E9%97%B4%E7%9A%84%E4%B8%BB%E8%A6%81%E5%8C%BA%E5%88%AB.png)
我需要在 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!