questions about upstream buffering mode

Eugaia ngx.eugaia at
Sun Dec 12 17:23:16 MSK 2010


On 12/12/2010 15:40, Wu Bingzheng wrote:
> In non-buffering mode, even if there is no limit-rate, the downstream connetion still maybe slower than the upstream, such as because the downstream network situation is bad. Now, if the downstream is slower, and the data buffer is full, nginx will stop recieving data from upstream. So I think, adding limit-rate into non-buffering mode will not bring any problem about the data buffer you said.
> If the downstream is blocked by limit-rate and the data buffer is full, just stop receiving data, just like what it does now.
Yes, stopping receiving is obviously another option. I agree that it 
would probably work in a very similar way to slow downstreams now, and 
wouldn't have any additional problems - and I think it would be a good 
idea to add it.
> Just because of efficience?
I was merely speculating on Igor's motivations. I don't know. :-)
> But it causes some inconvenience, such as the upstream server can't be configed as keepalive mode (if the upstream is http proxy, it can be keepalive, because nginx dosen't support keepalive as a http client).
> there is a good addon module, HttpUpstreamKeepaliveModule, which can re-use memcached upstream connections. But it need the memcahced server to be configed as keepalive mode. Which means, if we configed the memcached upstream module as buffering mode(may because we need limit-rate...), we can't config the memcached server in keepalive mode, so we can't use HttpUpstreamKeepaliveModule.
Is it not possible to have memcached in both buffering an keepalive mode?

Perhaps your options are either to write a patch for Nginx or use 
something else (HAProxy / Trafficserver might be good alternatives).


More information about the nginx mailing list