Apache 2.4 has a module called mod_ratelimit. This module gives you the ability to limit the bandwidth of your requests posted to the web server. The usage is quite simple (read the docs):
First load the module (Apache 2.4 on FreeBSD). Uncomment following line in /usr/local/etc/apache24/httpd.conf
LoadModule ratelimit_module libexec/apache24/mod_ratelimit.so
This will load the module during next startup. Now how do i use it? Well, let's say you want the whole server to limit every request to 5MB/s, then use this:
<IfModule mod_ratelimit.c> SetOutputFilter RATE_LIMIT SetEnv rate-limit 5120 </IfModule>
The same can be applied to only specific directories if you need to:
<IfModule mod_ratelimit.c> <Location "/downloads"> SetOutputFilter RATE_LIMIT SetEnv rate-limit 5120 </Location> </IfModule>
Last step, as apache needs to load a new module, restart your webserver, not reload:
# service apache24 restart