2016-01-06 30 views
1

我没有运气在任何搜索中发现此问题。我也在Apache论坛发布了这个问题,但到目前为止还没有任何运气。Apache HTTPD服务器正在间歇性地从发布数据中丢弃单个项目

我在JBoss应用程序服务器(EAP 6.2)上有一个应用程序,前面有一台Apache 2.2.26服务器,它充当HTTPS的反向代理。该应用程序有一个很大的多部分表单,最近一段时间内,邮件数据中的单个表单字段间歇性丢失(并非总是相同的字段)。我们已验证所有数据正在发送,但未被应用程序接收。如果我们将HTTP直接发送到JBoss服务器(测试服务器),则不会发生该问题。我们一再发送相同的表单数据,有时会丢弃单个表单字段(不总是相同的字段),有时不会。但是,它往往足以容易重复。这个问题发生在Internet Explorer和Firefox上,所以似乎没有与浏览器相关。发送的数据量有所不同,但通常在10-30 KB范围内。即使在调试级别登录时,Apache服务器日志中也不会出现任何错误。

另外一点信息是,由于这是一个多部分表单,浏览器在提交时会在每个表单域和文件之间包含一个边界值。我们已经注意到,当发送相同的表单数据时,这个边界值的大小会发生变化,并且丢失的表单数据会根据边界值的大小而变化。

任何关于什么可能导致这种数据丢失的想法将不胜感激。

更新:这个问题是类似报道的Apache 2.0.55和2.2.2老的bug,link

更新:发现了如何监控的字节数在JBoss的AJP接收港口。从浏览器发送的相同数量的字节到达ajp端口。这可能是一个块编码问题?

回答

1

事实证明,这个问题与SLL协议有关。我们正在使用TLSv1,最近更改为TLSv1.2。随着协议升级,问题消失了。所以,我们在测试环境中变回TLSv1。问题再次出现。然后,我们改为TLSv1.2,问题就消失了。

不知道为什么协议改变解决了这个问题,但我知道TLSv1.2做了相当大的改变。此时只是很高兴协议升级解决了这个问题。

+0

哦,我的上帝谢谢你。过去几天,我一直在抨击我的头,除了在我的情况下,最后两个表单字段一直被丢弃。更改为TLSv1.2,一切正常,回到v1.1,问题再次出现。 – VirtualWolf