Problem with instant streaming request body to backend
tomasz.roda at gmail.com
Thu Jan 5 12:27:53 UTC 2012
2012/1/5 Andrew Alexeev <andrew at nginx.com>:
> On Jan 5, 2012, at 1:48 PM, Tomasz Roda wrote:
>> I am developer in new startup and Nginx is important part of whole
>> system. Generally it is great load balancer, has many interesting
>> modules and configuration possibilities but I have one serious problem
>> which I cannot solve.
>> Problem is that Nginx for each request collects the whole body of
>> request and only after that sends request next to backend. I know that
>> I can theoretically use upload module to omit that issue but we have
>> got own part of code to handle uploads in way that we need (which must
>> not be supported by module in load balancer). That issue is big
>> problem for us because in current load balancer implementation data
>> from client is unnecessarily "cached" on load balancer (load
>> balancer's hard drive in fact) and then send to backend instead of
>> instant streaming from client by load balancer to backend. Main
>> problem is lower performance (requirement of fast storage on load
>> balancer servers) and additional requests latency, it is really
>> noticeable especially for big files.
>> My question is: is any chance for adding feature of instant data
>> streaming of request body to backend? If chance is real can we expect
>> feature implementation soon? I think that it is useful functionallity
>> and can be used by many Nginx users.
> By instant data streaming do you mean generic L4/TCP load balancing or still some form of a L7/HTTP load balancing with additional controls for headers and request/response, and with efficient handling of concurrent connections?
> What are the other roles of your nginx setup aside from load balancing to the backends?
I mean a L7/HTTP load balancing. We need additional handling of
requests by Nginx for HTTPS (backend applications operate on HTTP
requests), access logging, passing requests to proper backend
applications basing on URL, x-accel-redirect, etc.
More information about the nginx