最近,我的应用每天的访问量大幅增加。
这导致Web服务器上200-300个并发用户到达崩溃的时间。
在研究了服务器崩溃的原因后,我得出结论:磁盘空间不足以写入缓存。
目前我已将4G容量分配给应用程序的缓存文件夹。此文件夹需要填写大约1或2天。因此,某些东西运作不佳。
我一直在阅读Cache官方Symfony一书,我读到所有默认的symfony缓存都是私有的。
我开始告诉symfony哪些驱动程序必须在开发环境中有一个公共缓存(localhost)向我展示了良好的标头Cache-control,但是当我运行控制器输出时,向我显示一个错误的标题。
例如,应用程序的主页应该公开缓存30分钟。
$response = $this->render('MyBundle:Folder:index.html.twig');
$response->setSharedMaxAge(2400);
从控制台谷歌浏览器以开发模式运行服务器我可以看到响应有这个标题:
缓存控制:public,s-maxage = 2400
这里的一切都很好。
当我在生产模式下运行服务器时,标题不一样:
Cache-Control:max-age = 0,public,s-maxage = 0
有谁知道为什么会这样?