<div dir="ltr"><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">fastcgi_request_buffering does deactivate request buffering from what I understand from the docs.<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">client_body_buffer_size is said to be useful/used only when the previous directive is activated.<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">From what I read it seems your configuration attempts failed to load or to be activated where needed.<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)"><br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">Could you provide us with a minimal loaded configuration reproducing the problem (ie buffering while you configured it not to do so), through the use of <a href="http://nginx.org/en/docs/switches.html" target="_blank">nginx -V</a>?<br></div><div class="gmail_extra"><div><div data-smartmail="gmail_signature"><font size="1"><span style="color:rgb(102,102,102)">---<br></span><b><span style="color:rgb(102,102,102)">B. R.</span></b><span style="color:rgb(102,102,102)"></span></font></div></div>
<br><div class="gmail_quote">On Fri, Aug 26, 2016 at 7:19 AM, phani prasad <span dir="ltr"><<a href="mailto:mailforpps@gmail.com" target="_blank">mailforpps@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span style="font-size:12.8px">Hi all,</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">for one of our products we have chosen nginx as our webserver and using fastCGI to talk to upstream(application) layer. We have a usecase where in the client sends huge payload typically in MB and nginx is quick enough reading all the data and buffering it . Whereas our upstream server is quite slower in consuming the data.  This resulted in timeout on client side since the upstream cant respond with status code until unless it finish reading the complete payload. Additional information is, the request is chunked.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">To address this we have tried several options but  nothing worked out so far.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">1. we turned off fastcgi_request_buffering setting it to off. </div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">This would only allow nginx not to buffer request payload into a temp file before forwarding it to application/upstream. But it still use some buffer chains to write to upstream. </div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">2. setting client_body_buffer_size .</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">this would only check if request body size is larger than client_body_buffer_size, then it writes whole or part of body to file. </div><div style="font-size:12.8px">How does this work in case of chunked request body? </div><div style="font-size:12.8px">What is the max chunk size that nginx can allocate?</div><div style="font-size:12.8px">What if upstream is slow in consuming the data ? Does nginx still try to writev chain of buffers to the pipe?</div><div style="font-size:12.8px">How many max chain buffers nginx would maintain to buffer request body? If so is it configurable?</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">What other options that we can try out? we want to completely disable request body buffering and would want to stream the data as it just arrives from client. and if upstream is busy , <b>nginx should be able to tune itself in the sense it should wait reading further data from client until upstream is ready to be written.</b></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Any help is much appreciated as this is blocking one of our product certifications.</div><div><br></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Thanks</span></div><span><font color="#888888"><div><span style="font-size:12.8px">Prasad.</span></div></font></span></div>
<br>______________________________<wbr>_________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailm<wbr>an/listinfo/nginx</a><br></blockquote></div><br></div></div>