【发布时间】:2012-01-21 15:37:48
【问题描述】:
看来 nginx 对分块请求的支持不是很好。但我试图得到一个更明确(和当前)的答案。我有一个客户端从 Java 客户端向服务器发出 SOAP 请求,该请求设置了标头 Transfer-Encoding: chunked。当我直接连接到 Tomcat 上的应用程序时,一切正常。
但是当我把 nginx 放在它们之间时,事情就坏了。
添加一些细节:我正在使用 CloudFoundry。我正在使用 Micro Cloud Foundry 来确认在没有 nginx 的情况下事情是否按预期工作。但是我的要求是使用cloudfoundry.com,所以我没有能力绕过那里的nginx。
This question and answer 说这可能是我唯一的解决方法:http://wiki.nginx.org/NginxHttpChunkinModule。但该解决方法不可用,因为我无法修改 cloudfoundry.com 上的配置。
This question 看起来也很相似,但它实际上涵盖了此要求的反面。它涵盖了分块响应而不是分块请求。
那么,如何对客户端进行任何更改以解决此问题?是否可以同时发送 Transfer-Encoding: chunked 和 Content-Length: 123 作为标题?这个领域对我来说是新的,但是从像 Apache HttpComponents 这样的项目看来,一个人可以设置长度或分块,但不能同时设置两者。分块的要点是您不需要知道请求开始时的长度。我可以告诉我的客户使用 HTTP/1.0 并在不分块的情况下与 nginx 一起玩吗?还有其他我忘记的解决方法吗?
【问题讨论】:
标签: java soap nginx chunked-encoding cloud-foundry