Manage Apache Download Speed And Traffic Limits With mod_cband - Page 2

Want to support HowtoForge? Become a subscriber!
 
Submitted by falko (Contact Author) (Forums) on Wed, 2006-05-31 21:06. ::

3 Apache Configuration

You can find all configuration directives on mod_cband's documentation page http://cband.linux.pl/documentation; I will describe the most important ones here.

In this chapter I assume we have a web site www.example.com on the IP address 1.2.3.4 with the document root /var/www and the following vhost configuration:

<VirtualHost 1.2.3.4>
ServerName www.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www
</VirtualHost>

Please note: It is important that your vhost includes the ServerName directive (e.g. ServerName www.example.com) and that your mod_cband directives come after that directive, otherwise you will get a warning like this when you restart Apache:

Starting httpd: [Mon May 29 18:05:33 2006] [warn] Invalid command 'CBandSpeed', undefined virtualhost name

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.

First we add the following two directives to the global Apache configuration (not to the vhost from above!). They are needed to improve mod_cband's performance.

Debian:

vi /etc/apache2/apache2.conf

Fedora:

vi /etc/httpd/conf/httpd.conf

CBandScoreFlushPeriod 1
CBandRandomPulse On

Now we create the scoreboard directory for our www.example.com vhost, /var/www/scoreboard. The directory must be writeable by the Apache user:

Debian:

mkdir /var/www/scoreboard
chown www-data:www-data /var/www/scoreboard/

Fedora:

mkdir /var/www/scoreboard
chown apache:apache /var/www/scoreboard/


3.1 Configure Download Speed

Now let's say we want to limit the download speed. We can do it like this:

<VirtualHost 1.2.3.4>
ServerName www.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www
CBandSpeed 1024 10 30
CBandRemoteSpeed 20kb/s 3 3
</VirtualHost>

The CBandSpeed directive limits the overall Apache performance for the www.example.com vhost to a speed of 1024kbps, max. 10 requests per second and max. 30 open connections.

The CBandRemoteSpeed is like the CBandSpeed directive, but it sets limits for any individual user (as compared to the overall settings made by CBandSpeed).

After your changes, you must restart Apache:

Debian:

/etc/init.d/apache2 restart

Fedora:

/etc/init.d/httpd restart


Please do not use the comment function to ask for help! If you need help, please use our forum.
Comments will be published after administrator approval.
Submitted by Anonymous (not registered) on Wed, 2013-04-10 19:07.
I want use mod_cband with mod_proxy(apache2 with tomcat cluster). Any one has idea?
Submitted by Anonymous (not registered) on Thu, 2009-10-08 12:47.

Hello, and thank you for writing this text.

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

Submitted by Wedesign Marbella (not registered) on Thu, 2009-06-11 09:53.

Hi,

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

Thanks in advance,

Submitted by Lord Readman (not registered) on Mon, 2009-07-27 21:39.

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.

Submitted by Wedesign Marbella (not registered) on Thu, 2009-08-06 15:34.
Many thanks