【发布时间】:2012-11-08 01:50:12
【问题描述】:
我已经在本地设置了 Varnish 并在页面的特定区域实现了 ESI 片段;但是,一旦我在 default.vcl 上打开 ESI,varnish 就会停止缓存,甚至更多,添加片段的页面的特定部分会呈现 503 服务不可用通知。
似乎使 varnish 停止缓存的那一行是这里的 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 片段时才缓存?有人可以解释我做错了什么吗?
【问题讨论】:
-
我已经将 default.vcl 更新为这个 pastebin.com/yaW0hZeL 然后,esi_blocks.vcl 是这样的:pastebin.com/1CMr6q4E 和 drupal.vcl 到这个 pastebin.com/cz7zNDqQ 但仍然得到一个 503 错误在页面的那个 esi 片段部分。
标签: drupal caching varnish esi