キャッシュに symfony リバース プロキシを使用しています。
私は2つのプライベートキャッシュを持っています。プライベートなオンライン ショップと考えることができます。アイテムのリストは、ユーザーの認証が必要なため、私の最初のプライベート キャッシュです。このコンポーネントは、ログに記録されたユーザーのみの動的データを含むため、私の 2 番目のプライベート キャッシュです。
AppKernel
$kernel = new AppKernel($env, $debug);
$kernel->loadClassCache();
$kernel = new AppCache($kernel); // <-- enable cache
config.yml
framework:
esi: { enabled: true }
fragments: { path: /_proxy }
page.html.twig
<header>{{ render_esi(controller('AppBundle:Menu:displayMenu')) }}</header>
<main>cached private stuff</main>
PageController - IndexAction:
$response = new Response();
$response->setPrivate();
$response->setMaxAge(180); // 3 minutes for the content
return $this->render('page.html.twig', [], $response);
MenuController - DisplayMenuAction:
$response = new Response();
$response->setPrivate();
$response->setMaxAge(10); // only 10 second for the menu
return $this->render('page.html.twig', [], $response);
本番環境では、キャッシュヘッダーに表示されます
キャッシュ コントロール: 最大年齢 = 0、パブリック、s-maxage = 15
2 つのプライベート キャッシュがありますが、キャッシュ ヘッダーがパブリックとして送信されるのはなぜですか?
編集:
esi_render タグにコメントすると、ページのキャッシュは 3 分間非公開になります。(予想通り)
コマンドで他のリスナーがいないことを確認しましたbin/console debug:container --tag=kernel.event_subscriber