我有一个非常奇怪的问题。我的应用程序堆栈是基于J2EE的,并使用Spring 2.5.6和Spring webflow 2.0.6。应用服务器是Weblogic 9.2,前面有一个Apache服务器(负载平衡)。我们使用SiteMinder Webagent作为apache中的身份验证层。
以下问题可能是由上述任何一层造成的 -
我们的网站性能非常慢,原因是某些javascript和css文件未被缓存。我们知道Siteminder删除了If-Modified标头,因此我们启用了IgnoreExt参数(在WebAgent中)添加.js& .css扩展到现有的不受保护的文件类型列表(没有缓存此NO或JS文件)。现在的问题是我看到只有2个文件没有被缓存(即服务器没有返回304),原因是响应头被破坏了。服务器确实返回304,但标题中有一些垃圾文本,因此客户端无法决定从哪里获取内容。它看起来像这样 -
alt text http://img187.imageshack.us/img187/2358/dojo.gif
alt text http://img246.imageshack.us/img246/2087/tundra.gif
现在,这可能是2个文件(Spring Webflow的一部分)的已知问题,或者是带有SiteMinder的Apache配置或其他完全不同的问题。有人遇到过这个吗?知道从哪里开始寻找?
答案 0 :(得分:0)
我们遇到了类似的情况,运行Apache 2.0.59和WebLogic 10mp2。间歇性地,我们会发现数据位于有效的HTTP响应之前。在304 Not-Modified响应之后,数据始终是gzip压缩的0。损坏的标题以签名1F 8B 08 ...
开头问题似乎源于mod_deflate与缓存资源的使用。我们已经能够通过禁用mod_deflate来消除这个问题。到目前为止,我们已禁用mod_deflate批发,但正在努力缩小我们禁用mod_deflate的位置。 Apache WebServer项目暗示了2.1.1中的修复:
*)mod_deflate:不要缩短零长度的响应 例如代理304的[Allan Edwards]