У меня есть базовая страница PHP, загружаемая через Varnish с одним включением ESI, которое вызывает сервер для установки файла cookie. Файл cookie устанавливается с доступом к домену и т.п., но при вызове через ESI файл cookie никогда не устанавливается. Если вы обращаетесь к пути включения ESI напрямую, файл cookie устанавливается без проблем. Я даже настроил свою конфигурацию Varnish так, чтобы она никогда ничего не кэшировала, думая, что VCL может убивать cookie.
Этот...
<esi:include src="/init.php?<?=http_build_query($_GET); ?>"></esi:include>
... включает это...
<?php
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
setcookie('superman', 'clark kent', 0, '/', '.whatever.com');
?>
Я новичок в Varnish и ESI, поэтому я начинаю задаваться вопросом, является ли это известным ограничением (либо с ESI, либо с реализацией Varnish ESI), но я не могу найти обсуждения моей проблемы в Интернете.