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