bandwidth limit for specific server

Francis Daly francis at daoine.org
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,

	f
-- 
Francis Daly        francis at daoine.org


More information about the nginx mailing list