Manage Apache Download Speed And Traffic Limits With mod_cband

Version 1.0
Author: Falko Timme
Last edited 05/29/2006

In this tutorial I will describe how to install and configure mod_cband on an Apache2 web server. mod_cband is an Apache 2 module which provides bandwidth quota and throttling. It solves the problem of limiting users' and virtualhosts' bandwidth usage. The current version can set virtualhosts' and users' bandwidth quotas, maximal download speed, requests-per-second speed and the maximal number of simultanous IP connections.

mod_cband can be used by hosting companies, which would like to limit data transfer for their users, such as "10 GB of traffic per month".

In the first two chapters I will show how to install mod_cband on Debian Sarge and on Fedora Core 5 (the 64-bit version), and in the third chapter I will describe how to configure Apache for mod_cband which is independent from the distribution you're using.

Please note: mod_cband is an Apache2 module, it does not work with Apache 1.3.x!

I want to say first that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. I do not issue any guarantee that this will work for you!

1 Installation On Debian Sarge

In order to compile mod_cband, we must have apxs2 installed. We can achieve that by doing this:

apt-get install apache2-prefork-dev

Next we download and install mod_cband like this:

cd /tmp
wget http://cband.linux.pl/download/mod-cband-0.9.7.4.tgz
tar xzvf mod-cband-0.9.7.4.tgz
cd mod-cband-0.9.7.4
./configure
make
make install

The make install command should have added the mod_cband module to /etc/apache2/httpd.conf. Run

vi /etc/apache2/httpd.conf

and check if you find a line like this:

LoadModule cband_module       /usr/lib/apache2/modules/mod_cband.so

(If you don't find this line, add it yourself.)

Finallly restart Apache:

/etc/init.d/apache2 restart

The mod_cband installation is now finished.

2 Installation On Fedora Core 5

In order to compile mod_cband, we must have apxs installed. We can achieve that by doing this:

yum install httpd-devel

Next we download and install mod_cband like this:

cd /tmp
wget http://cband.linux.pl/download/mod-cband-0.9.7.4.tgz
tar xzvf mod-cband-0.9.7.4.tgz
cd mod-cband-0.9.7.4
./configure
make
make install

The make install command should have added the mod_cband module to /etc/httpd/conf/httpd.conf. Run

vi /etc/httpd/conf/httpd.conf

and check if you find a line like this:

LoadModule cband_module       /usr/lib64/httpd/modules/mod_cband.so

(If you don't find this line, add it yourself.)

Finallly restart Apache:

/etc/init.d/httpd restart

The mod_cband installation is now finished.

Share this page:

15 Comment(s)

Add comment

Comments

From: Anonymous at: 2006-06-03 20:10:48


mod_throttle

From: Anonymous at: 2006-06-01 15:42:21


The cband Apache2 module is available from Debian's package sources if you are running testing (etch) or unstable (sid).

apt-get install libapache2-mod-cband

From: Anonymous at: 2006-06-01 22:29:09


There is also a package for mod_cband in Fedora. Just install it with:

yum install mod_cband


From: Anonymous at: 2006-06-02 13:34:26


Considering the majority of Apache installations are still using Apache 1.X, it's a shame that mod_cband isn't also available for Apache 1.X. I guess that the output filtering functionality of Apache 2.X (far superior to 1.X's) has caused this - one "workaround" might be to put an Apache 2.X reverse proxy in front of your (now backend) Apache 1.X server...

From: Anonymous at: 2006-06-07 20:54:35


libapache2-mod-cband is on backports.org for sarge.

You do not need to recompile.


From: Anonymous at: 2008-10-01 23:29:34

I have a test Apache 2.2 server on Windows 2003, is it poddible to get mod_cband to work on it?


 


 

From: bahram at: 2011-01-07 10:53:32

hello, is there anyway to do global limitation for all accounts at once? I have about 500 account and I can not add limitation entry one by one.

From: Paki at: 2011-02-18 21:32:23

ThEnX! 

From: Anonymous at: 2011-08-08 05:06:34

how to install mod_cband on windows 7?

From: Wedesign Marbella at: 2009-06-11 08:53:45

Hi,


 What would be the configuration to allow a site with only 80Gb per month?


Thanks in advance,

From: Lord Readman at: 2009-07-27 20:39:29

In response to Wedesign Marbella


#the scorebord of the virtual host
CBandScoreboard /var/www/scoreboard/site.scoreboard
#this would set the limit to 80GB
CBandLimit 80G
#this is the period of 30days (set to 31 if you wish)
CBandPeriod 30D
#if 80G is exceeded give everyone a 509 Bandwidth Exceeded Error.
CBandDefaultExceededCode 509


 Of course you can tailor your config to your custom requirements.

From: Wedesign Marbella at: 2009-08-06 14:34:16

Many thanks

From: Anonymous at: 2009-10-08 11:47:37

Hello, and thank you for writing this text.


How can I limit ips in downloads. ex: every ip can only download one time.

From: Anonymous at: 2013-04-10 18:07:52

I want use mod_cband with mod_proxy(apache2 with tomcat cluster). Any one has idea?

From: Anonymous at: 2006-08-27 11:47:45

hi,

accoridng the manual for cband the  CBandScoreboard is a path to a file. See bellow:

Name     CBandScoreboard
Description     Specifies virtualhost's scoreboard file
Context     <Virtualhost>
Syntax     CBandScoreboard path

in your examples it's defined as directory:

mkdir /var/www/scoreboard


chown apache:apache /var/www/scoreboard/

CBandScoreboard /var/www/scoreboard

which is not true!

you should touch the file not do mkdir. 

 Best regards,

Martin