サーバーにコールバックしてCookieを設定する単一のESIインクルードを使用してVarnishを介してロードされている基本的なPHPページがあります。クッキーはドメインアクセスなどで設定されますが、ESIを介して呼び出された場合、クッキーは設定されません。ESIインクルードパスに直接アクセスする場合、Cookieは問題なく設定されます。VCLがCookieを強制終了する可能性があると考えて、Varnish構成を何もキャッシュしないように設定しました。
これ...
<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実装のいずれか)であるかどうか疑問に思い始めていますが、オンラインで問題の説明を見つけることができません。