bandwidth limit for specific server

Francis Daly francis at
Wed Dec 22 23:47:44 UTC 2021

On Sat, Dec 18, 2021 at 01:37:11PM +0800, huiming wrote:

Hi there,

>   Is it possible to limit total bandwidth for server?

Using only stock nginx, I believe the answer is "yes, but not in a way
that you would want; so effectively no".

You can limit the number of concurrent (active) connections; you can
limit the rate of requests that nginx will process; and you can limit
the response bandwidth for each request.

By combining those, you can put an upper limit on the response bandwidth;
but I suspect that it is unlikely to be useful for you.

You might be happier looking for a third-party module that does some
form of internal bandwidth limiting; or use something outside of nginx
to limit the bandwidth.

The latter would probably be simpler if your chosen server_name was
the only one this nginx handled; or if the IP address were dedicated to
this server_name -- in those cases, the external thing would not need to
know much (or anything?) about what nginx is doing; it could just handle
"traffic from this process group", or "traffic from this IP address".

>   server {
>     listen   443 ssl;
>     server_name x.x.x.x.x;
>     is it possible to limit total bandwidth for this server to for example 5M ? not to limit TCP connection bandwidth. need total bandwidth.

It is using the TCP connection bandwidth limit; but if you were to
"limit_rate" to 1m and "limit_req" to 5 r/s, then you would not use
more than 5M (bps) -- but you would probably normally end up using less
than that; because individual requests would not use 5, while multiple
requests would probably lead to lots of small failure responses.

Good luck with it,

Francis Daly        francis at

More information about the nginx mailing list