我已经在本地设置了 Varnish 并在页面的特定区域实现了 ESI 片段;但是,一旦我在 default.vcl 上打开 ESI,varnish 就会停止缓存,甚至更多,添加片段的页面的特定部分会呈现 503 服务不可用通知。
似乎使清漆停止缓存的行是这里的 else 语句:
if (req.url ~ "\.(png|gif|jpg|swf|css|js)$") {
unset beresp.http.set-cookie;
set beresp.ttl = 20m;
}
else {
set beresp.do_esi = true;
}
这是我的 default.vcl: http: //pastebin.com/MEQF4Gbk
现在,在 RxHeaders 我得到很多“ESI_xmlerror c No ESI processing, first char not '<'”
这里是一个 RxHeaders 示例(用于 JS 文件) http://pastebin.com/tX7zpBN1
我想,我不明白如何告诉清漆只有在它有 esi 片段时才缓存?有人可以解释我做错了什么吗?