ESI包含JSON响应

时间:2014-08-14 09:19:55

标签: varnish esi

我正在努力让ESI包含在JSON环境中被替换。

以下工作正常。导致ESI标签被实际内容替换。

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

这不起作用。 ESI标签未被替换。

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

我在google上找到了一些资源,可能的解决方案似乎是将esi_syntax设置为0x3以便清除以检查有效的XML。 这似乎不适用于Varnish 4.当我使用运行时参数启动deamon时,我收到以下错误。

 Error: Unknown parameter "esi_syntax".

Varnish 4中是否弃用此设置?

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

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:2)

this diff上,我们可以看到esi_syntax的删除,以及esi_disable_xml_check旧值的新0x3功能。

我还在the manesi_disable_xml_check找到了引用。