清漆防止esi从外部来源访问

时间:2013-07-17 10:32:15

标签: varnish esi

我有清漆运行,每件事情都运转正常。

但我使用的是esi <esi:include src="/esi/cache/temp.phtml?id=1"/>,而且它工作正常,但我想防止外部资源可以访问esi目录。

现在我通过使用req.esi_level在varnish中设置标头来实现它。如果直接访问esi,它将为0,否则将为n + 1

这个唯一的问题是,我会想到/希望Varnish它可以阻止访问esi目录。

tl; dr如何阻止外部访问带有清漆的esi目录

1 个答案:

答案 0 :(得分:1)

在您的VCL中,不是使用request.esi_level的值设置标头,而只是将esi_level为0的那些资源的请求短路。

伪VCL:

if (req.esi_level == 0 && req.url ~ "^/esi/.*") {
    error (403);
}