0

キャッシュに 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

4

0 に答える 0