기본 ESI가 포함 된 Varnish를 통해로드되는 기본 PHP 페이지가 쿠키를 설정하기 위해 서버에 다시 호출됩니다. 쿠키는 도메인 액세스 등으로 설정되지만 ESI를 통해 호출되면 쿠키가 설정되지 않습니다. ESI include 경로에 직접 액세스하면 쿠키는 아무 문제없이 설정됩니다. 나는 심지어 VCL이 쿠키를 죽일 수 있다고 생각하면서 아무것도 캐시하지 않도록 내 Varnish 구성을 설정했습니다.ESI : include 스크립트에서 쿠키를 어떻게 설정합니까?
<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');
?>
나는 광택 및 ESI 새로운 해요, 그래서이는 경우 궁금해하기 시작 해요 (ESI 또는 Varnish의 ESI 구현과 관련하여) 알려진 제한 사항이 있지만 온라인에서 문제점을 논의 할 수는 없습니다.
빨아. 예, 쿠키 설정을위한 javascript 경로를 사용할 수는 있지만 여러 가지 이유로 그렇게 할 필요가 없기를 바랍니다. 해킹 할 수있는 방법을 찾으려고 노력할 것 같지만, 지금은 가능합니다. 특히 바니시 (Varnish)의 가벼운 ESI 구현의 경우에는 가능하지 않습니다. –