Symfony2 Varnish NGINX缓存/ DebugToolbar

时间:2012-06-29 19:31:03

标签: debugging caching symfony nginx varnish

我正在尝试使用symfony2进行清漆缓存。 设置是清漆 - > 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-Querys。

非常感谢!

1 个答案:

答案 0 :(得分:1)

如果页面完全缓存在Varnish上,请求甚至不会访问您的Web服务器。不仅没有SQL查询,而且根本没有调用Symfony。

调试工具栏是页面的一部分,这就是它被缓存的原因。再次......仅在第一次请求时调用Symfony。

再次阅读官方文档中的HTTP Cache章节。其中有两篇文章值得一读: