У меня есть базовая страница PHP, загружаемая через Varnish с одним включением ESI, которое вызывает сервер, чтобы установить cookie. Файл cookie устанавливается с доступом к домену и т.п., но при вызове через ESI файл cookie никогда не устанавливается. Если вы обращаетесь к пути включения ESI напрямую, файл cookie устанавливается без проблем. Я даже настроил свою конфигурацию Varnish так, чтобы она никогда ничего не кэшировала, думая, что VCL может уничтожить куки.
Этот ...
<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, либо в реализации ESI Varnish), но я не могу найти обсуждения моей проблемы в Интернете.