Symfony AWS ALB设置缓存控制专用最大年龄标头

Symfony AWS ALB设置缓存控制专用最大年龄标头,symfony,amazon-web-services,caching,load-balancing,Symfony,Amazon Web Services,Caching,Load Balancing,我有一个Symfony 3应用程序,它部署在AWS Beanstalk实例上,其中一个EC2实例位于应用程序负载平衡器后面,因为我使用HTTP/2 然而,我发现负载平衡器存在一个奇怪的问题。我知道它不应该设置任何缓存头,但出于某种原因它设置了缓存头。在我的测试机器上,使用相同的代码,我将此头与响应一起发送: cache-control:private 但在AWS服务器上,将发送此标头: cache-control:private, max-age=86400 这会中断我的应用程序,因为我不希

我有一个Symfony 3应用程序,它部署在AWS Beanstalk实例上,其中一个EC2实例位于应用程序负载平衡器后面,因为我使用HTTP/2

然而,我发现负载平衡器存在一个奇怪的问题。我知道它不应该设置任何缓存头,但出于某种原因它设置了缓存头。在我的测试机器上,使用相同的代码,我将此头与响应一起发送:

cache-control:private
但在AWS服务器上,将发送此标头:

cache-control:private, max-age=86400
这会中断我的应用程序,因为我不希望客户端浏览器缓存响应,因为我的应用程序只能由登录用户访问。我找到的唯一解决方法是在我的app.php文件中调用此函数,然后再将响应发送回客户端:

$response->headers->removeCacheControlDirective('private');
这会将
no cache
指令添加到
cache control
头中,以防止浏览器缓存响应,但我不确定这是否是正确的方法,因为AWS应用程序仍然发送
max age
指令,并且我不确定
no cache
指令是否会覆盖所有浏览器中的其他指令

修复后,这是我从服务器获得的信息:

cache-control:no-cache, private
来自AWS的信息:

cache-control:no-cache, private, max-age=86400
TL/DR:那么,我想问的是,有没有办法从AWS服务器发送的内容中删除
max-age
指令


谢谢,我已经使用StackOverflow很多年了,但这是我第一次问问题,因为我在任何地方都找不到答案。

所以我终于找到了答案,结果发现它与AWS无关。。。 原因是在.htaccess文件中,我有一个
mod\u expires
指令,上面有一行:

ExpiresByType text/html "access plus 1 days"
它将缓存头添加到所有html页面…出于某种原因,Linux或Windows上的Apache都没有mod_过期,但AWS的web服务器有它