9

我正在努力让 ESI 包含在 JSON 上下文中被替换。

以下工作正常。导致ESI标签被实际内容所取代。

<esi:include src="http://domain.com/esipath/" />

这是行不通的。ESI 标签不会被替换。

{
    "test": "<esi:include src="http://domain.com/esipath/" />"
}

我在谷歌上找到了一些资源,一个可能的解决方案似乎设置esi_syntax为 0x3 以让清漆跳过检查有效 XML。这似乎不适用于 Varnish 4。当我使用运行时参数启动守护程序时,出现以下错误。

 Error: Unknown parameter "esi_syntax".

Varnish 4 中是否已弃用此设置?

有什么想法可以让这个工作吗?

4

2 回答 2

14

确实该参数在 varnish4 中被贬低了。您要做的是激活该功能ESI_DISABLE_XML_CHECK

对我来说,我编辑/etc/default/varnish(基于 debian 的系统)并添加

-p feature=+esi_disable_xml_check

DEAMON_OPTS参数,例如:

DAEMON_OPTS="-a :6081 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,4GB \
             -p feature=+esi_disable_xml_check"
于 2014-08-21T12:20:58.687 回答
2

这个差异中,我们可以看到删除了esi_syntax,并且新esi_disable_xml_check功能以0x3旧值出现。

我还找到了关于esi_disable_xml_checkman参考资料。

于 2014-08-21T12:00:20.863 回答