Symfony2 Varnish Кэш NGINX / DebugToolbar

Я пытаюсь использовать кеширование лака с symfony2. Настройка: Varnish -> NGNIX -> php-fpm.

Мой код:

public function indexAction($city_url)
{

    $response = new Response();
    $response->setETag('foobar123fo');
    if ($response->isNotModified($this->getRequest())) {
        // return the 304 Response immediately
        return $response;
    }

    $data = array('randA'=> rand() );
    $response = $this->render('Foo:Event:index.html.twig', $data);

    $response->setCache(array(
        'public'        => true,
    ));
    $response->setETag('foobar123fo');
    $response->setSharedMaxAge(10); 

    return $response;

Это работает так, как задумано — я получаю попадания в кеш, но панель инструментов отладки Symfony также кэшируется. Может ли кто-нибудь сказать мне, как исключить кеширование панели инструментов? Я хотел бы видеть, что при обслуживании кэшированных результатов, например, действительно нет SQL-запросов.

Большое спасибо!


person Alex Tbk    schedule 29.06.2012    source источник


Ответы (1)


Если страница полностью кэшируется в Varnish, запрос даже не попадает на ваш веб-сервер. Мало того, что SQL-запросы не выполняются, Symfony вообще не вызывается.

Панель инструментов отладки является частью страницы и поэтому кэшируется. Опять же... Symfony вызывается только при первом запросе.

Еще раз прочтите главу HTTP-кэш в официальной документации. В нем есть две рекомендуемые статьи, которые также стоит прочитать:

person Jakub Zalas    schedule 29.06.2012