Как сделать запрос по фрагментам через nginx

Похоже, что nginx плохо поддерживает запросы с фрагментами. Но я пытаюсь получить более точный (и актуальный) ответ. У меня есть клиент, который делает запрос SOAP к серверу от клиента Java, который устанавливает заголовок 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 без фрагментов? Есть ли другие способы обхода, которые я забываю?

5
задан Community 23 May 2017 в 11:54
поделиться