Manage Apache Download Speed and Traffic Limits
Administration, Linux System Administration, Operating Systems Add commentsI’ve been experimenting on how I can limit the download speed via Apache configuration. This method is good for file-sharing website and for hosting servers. In my case, I am using Centos 5.5 and Apache 2.2.3 + mod_cband 0.9.7.5.
So, here’s what you will do… Assume you already installed the Apache.
- Install Apache Development libraries by casting “yum -y install apache-devel”
- Download “mod_cband” from http://dembol.org/blog/mod_cband/ or direct download link at http://dembol.org/downloads/cband/mod-cband-0.9.7.5.tgz
Follow steps (must be root mode)…
cd ~ wget http://dembol.org/downloads/cband/mod-cband-0.9.7.5.tgz tar xzvf mod-cband-0.9.7.5.tgz cd mod-cband-0.9.7.5 ./configure make make install
To check if successfully installed, type just like below and must have same result:
[root@localhost ~]# cat /etc/httpd/conf/httpd.conf | grep mod_cband.so LoadModule cband_module /usr/lib/httpd/modules/mod_cband.so
Then add the code below at httpd.conf then save and restart apache.
CBandScoreFlushPeriod 1 CBandRandomPulse On
Next is add a “scoreboard”
mkdir /var/www/scoreboard chown apache:apache /var/www/scoreboard/
Final steps is create an vhost entry at /etc/httpd/conf.d just like this (in my case, I created cband.com as my vhost);
[root@localhost conf.d]# cat cband.com.conf
<VirtualHost *:80>
ServerAdmin webmaster@cband.com
DocumentRoot /home/cband.com/public_html
ServerName cband.com
CBandSpeed 1024 10 30
CBandRemoteSpeed 50kb/s 3 3
CBandLimit 500M
CBandExceededSpeed 128 5 15
CBandScoreboard /var/www/scoreboard
CBandPeriod 4W
CBandExceededURL http://cband.com/exceeded.html
<Location /cband-status>
SetHandler cband-status
</Location>
<Location /cband-status-me>
SetHandler cband-status-me
</Location>
ErrorLog logs/cband.com-error_log
CustomLog logs/cband.com-access_log common
</VirtualHost>
[root@localhost conf.d]#
After you created the vhost file, restart your apache.
You can check the status of certain vhost by accessing the URL: http://cband.com/cband-status
or another status URL: http://cband.com/cband-status-me
Further Explanation:
- CBandSpeed 1024 10 30 — Overall apache performance. Max bandwidth speed is 1024bits per secs. 10 requests per secs. 30 max connections
- CBandRemoteSpeed 50kb/s 3 3 — Individual apache performance. Max bandwidth speed is 50kb/s, max 3 requests/s and max 3 connections
- CBandLimit 500M — 500MB max bandwidth limit
- CBandExceededSpeed 128 5 15 — Bandwidth speed limit at 128kbps, 5 request/s and max of 15 connections
- CBandScoreboard /var/www/scoreboard — scoreboard location
- CBandPeriod 4W – time to refresh
- CBandExceededURL http://cband.com/exceeded.html — if bandwidth exceeded, redirect to the specified URL.
You can use the following units in the mod_cband directives:
Transfer speeds:
kbps: 1024 bits per second
Mbps: 1024*1024 bits per second
Gbps: 1024*1024*1024 bits per second
The default is kbps.
Transfer quotas:
K: 1000 bytes
M: 1000*1000 bytes
G: 1000*1000*1000 bytes
Ki: 1024 bytes
Mi: 1024*1024 bytes
Gi: 1024*1024*1024 bytes
The default is K.
Time periods:
S: seconds
M: minutes
H: hours
D: days
W: weeks
The default is S.
Reference:
Download mod_cband file:
Pingback: mod_bandwidth