Nginx splitting one single request's into multiple requests to upstream. (version 1.13.3)
Maxim Dounin
mdounin at mdounin.ru
Wed Oct 4 16:04:56 UTC 2017
Hello!
On Wed, Oct 04, 2017 at 11:29:23AM -0400, pankaj at releasemanager.in wrote:
> Pbooth,
>
> Basically, i am receiving a complete json doc as a chunk from one app server
> which is then proxied to another app which is handing each chunk as a
> complete request. The problem is when you put nginx in between the document
> is sometime divided in multiple chunks or multiple chunks are merge into one
> chunk and transmitted to upstream app server.
>
> I have tried various configuration options but couldn't identify which
> configuration exactly controls this rechunking while proxying or max size of
> the chunk so there's never a case when two json docs are sent to the app in
> a single chunk. Ideally it should sent the chunk as is to upstream as
> recieved.
By saying "chunk" you mean HTTP chunk, as in chunked transfer
encoding, https://tools.ietf.org/html/rfc7230#section-4.1?
If yes, you have to basic options:
- rewrite your app to don't do that. Transfer encodings are
specific to a particular connection, and intermediate HTTP
proxies are free to recode message bodies. And there is no way to
avoid this in nginx when using http proxying.
- re-think your proxing configuration to avoid HTTP proxies
between apps in question. For example, TCP proxying as
available in nginx stream module should work fine.
--
Maxim Dounin
http://nginx.org/
More information about the nginx
mailing list