【发布时间】:2014-04-22 01:34:00
【问题描述】:
使用以下设置启用 Symfony2 反向代理缓存(在开发环境中测试):
class AppCache extends HttpCache
{
protected function getOptions()
{
return array(
'debug' => true,
'default_ttl' => 20,
'private_headers' => array(),
'allow_reload' => false,
'allow_revalidate' => false,
'stale_while_revalidate' => 21,
'stale_if_error' => 60,
);
}
}
服务器的响应如下。
从第一个请求开始(如预期):
X-Symfony-Cache:GET /api/posts?pageNumber=1: miss, store
从第二个请求和 20 秒内的所有后续请求开始(如预期的那样,内容从缓存中提供):
X-Symfony-Cache:GET /api/posts?pageNumber=1: fresh
20 秒后的请求(有问题):
X-Symfony-Cache:GET /api/posts?pageNumber=1: stale, invalid
对于 stale, invalid 响应,我得到的响应不是来自反向代理缓存,而是来自经历 MVC 周期的服务器。
感觉这里有几件事失败了:
- 不从缓存中提供过时的内容;
- 缓存未被重新验证;
有什么想法可以在哪里寻找原因?
【问题讨论】: