我使用 Symfony 2.3,并且启用了 Symfony 反向代理缓存。它有效,但不是我想要的,也不知道该怎么做。
所以,用户来到网站,访问一个页面。登录,导航回登录前查看的页面,但会为他在登录前显示的页面提供服务,没有任何登录更改。登录时,我强制页面不缓存,但是当页面已经被反向代理缓存时,似乎为时已晚,无论如何,缓存的页面都是服务器。
在通过缓存提供页面之前有什么方法可以确定请求来自登录的人,因此必须忽略缓存?
请参阅this question和this question,并确保通过将正确的标头添加到反向代理和用户缓存的响应中来告诉反向代理不要缓存这些路由。
$response->headers->addCacheControlDirective('no-cache', true);
$response->headers->addCacheControlDirective('max-age', 0);
$response->headers->addCacheControlDirective('must-revalidate', true);
$response->headers->addCacheControlDirective('no-store', true);