我最近开始使用F5的BigIP Web Accelerator来代理我的tomcat Web服务器。缓存来自tomcat的内容可能存在错误,该错误由HTTP响应304触发(参见:http://support.f5.com/kb/en-us/solutions/public/12000/800/sol12802.html)。
为了证明这是正确的理论 - 我想暂时禁用来自tomcat服务器的304 HTTP响应以查看它是否修复了该问题。
在Ubuntu上,tomcat版本是7.0.26-1。设置in context.xml并重新启动tomcat无法解决问题。
欢迎提出建议!
答案 0 :(得分:0)
我不知道tomcat中的每个配置是否可行。我几乎不这么认为,至少对于非静态文件。 (但是我不知道)。
但您要求提供建议,因此我会尝试删除负责HTTP 304响应的请求和响应标头。
因此,在响应中,这将是ETag
标头。在请求中,它将是If-None-Match
和If-Modified-Since
标题。
如何实现这一点取决于你的环境。你可以为你的应用程序编写一个Java EE过滤器来删除它们,或者在tomcat中全局地使用一个阀门(我认为后者是特定于tomcat的可能性)。
如果你在tomcat前面有一个带有mod_jk的apache,你可以使用mod_headers来取消设置标题(访问http://httpd.apache.org/docs/2.2/mod/mod_headers.html),或者如果apache本身生成标题,只需转动ETag生成。 我能想到的最后一种可能性是你的f5设备提供了一种删除标题的方法。
希望这有帮助!