Nginx $upstream_cache_status not available when used in rate limiting
francis at daoine.org
Wed Jul 20 21:28:39 UTC 2016
On Wed, Jul 20, 2016 at 02:52:10PM -0400, linnading wrote:
> It is "to the same upstream server" that I care about. I would like to
> limit the request rate to the same upstream server.
That makes sense, thanks.
I am not aware of a way to achieve this directly in stock nginx.
I see that there is a third-party module at
https://github.com/cfsego/nginx-limit-upstream which looks like
it aims to do what you want; and I see that nginx-plus has a
"max_conns" value per server in an upstream block, documented at
If non-stock is ok for you, possibly one of those can work?
> The Scenarios is like:
> 10 requests at the same time to the same upstream server, the upstream
> server should only receive requests at rate 1r/m. Last few requests will be
> delayed or rejected. But for these last few requests, some of them can be
> served by cache, they should not be delayed/rejected.
I think that the limit_* directives implementation is such that the
choice is made before the upstream is chosen; and there are no explicit
limits on the connections to upstream. That is likely why the third-party
module was created.
Francis Daly francis at daoine.org
More information about the nginx