2012-06-29 2 views
0

Я пытаюсь использовать лаковое кэширование с symfony2. Setup является Varnish -> NGNIX -> PHP-FPMSymfony2 Varnish Кэш NGINX/DebugToolbar

Моего код:

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-Query не существует.

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

ответ

1

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

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

Прочитать HTTP Cache главу в официальных документах еще раз. Есть две статьи, рекомендованные в нем, которые также стоит читать:

Смежные вопросы