Лак предотвращает доступ esi из внешнего источника

У меня установлен Varnish, и все работает отлично.

Но я использую esi <esi:include src="/esi/cache/temp.phtml?id=1"/>, и он работает нормально, но я хочу предотвратить доступ внешних ресурсов к каталогу esi.

Теперь у меня это работает, установив заголовок в лаке с помощью req.esi_level. Это будет 0, если вы напрямую обращаетесь к esi, а в противном случае это будет n + 1.

Единственная проблема с этим заключается в том, что он ударит по серверной части, если я думаю/надеюсь, что Varnish сам сможет предотвратить доступ к каталогу esi.

tl;dr, как вы можете предотвратить внешний доступ к каталогу esi с помощью лака


person MKroeders    schedule 17.07.2013    source источник


Ответы (1)


В вашем VCL, вместо установки заголовка со значением request.esi_level, просто замкните запросы для тех ресурсов, у которых esi_level равен 0.

псевдо-vcl:

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