Problem:
wenn man viele Download-Dateien auf dem Server hat, oder Projekte, die manchmal über sich hinaus gehen, möchte man als Admin mal den Traffic begrenzen.
Dies kann unterschiedlich erreicht werden. Manchmal reicht es schon aus, wenn man gewissen Web-Spider/Crawler mithilfe der robots.txt
aussperrt.
Lösung:
Wir installieren mod_cband
:
Alle nötigen Pakete installieren:
# Debian:
apt-get install apache2-prefork-dev
# SuSE:
yast -i apache2-devel
# Fedora:
yum install httpd-devel
Download und kompilieren:
cd /usr/local/src wget http://cband.linux.pl/download/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
Nachbereitung:
Leider versucht make install
das Modul direkt in die /etc/apache2/httpd.conf
einzubinden. Dies ist evtl. (vor allem unter Debian) nicht erwünscht. Oder unter Fedora ist der Pfad z.B. fehlerhaft und muß /etc/httpd/conf/http.conf
lauten.
Sicherheitshalber sollte man dies also überprüfen und ggf. die Zeile selber an der richtigen Stelle einfügen:
LoadModule cband_module /usr/lib/apache2/modules/mod_cband.so
(Achtung: auch hier kann der Pfad zu mod_cband.so
evtl. anders sein.)
Das Modul braucht ein (für Apache) beschreibbares Verzeichnis:
(Achtung: Der Apache-User www-data
heißt unter SuSE und Fedora anders)
mkdir /var/www/scoreboard chown www-data:www-data /var/www/scoreboard
Konfiguration:
Als erstes brauchen wir die globale Konfiguration für mod_cband
in /etc/apache2/httpd.conf
:
CBandScoreFlushPeriod 1 CBandRandomPulse On
Nun kann pro VirtualHost
der Speed beliebig gesetzt werden.
Wichtig: die CBand-Direktiven müssen immer nach dem ServerName
stehen. Diese Angabe ist für mod_cband
essentiell.
Beispiel:
<VirtualHost 1.2.3.4> ServerName www.domain.tld CBandSpeed 1024 10 30 CBandRemoteSpeed 20kb/s 3 3 CBandLimit 100M CBandPeriod 4W CBandScoreboard /var/www/scoreboard </VirtualHost>
CBandSpeed
setzt hier das Limit des Traffics auf 1024 Kbits pro Sekunde mit maximal 10 Request pro Sekunde und 30 offenen Connections.
CBandRemoteSpeed
setzt ein Limit pro Request/Client. Die Parameter sind die selben wie bei CBandSpeed
nur in anderer Schreibweise.
Mit CBandLimit
, CBandPeriod
und CBandScoreboard
wird ein monatliches (4-Wochen-Intervall) Download-Volumen von 100 MByte fest gelegt.
Weitere Möglichkeiten von mod_cband
finden sich in der Dokumentation.
Weiter Links:
- Official Website of mod_cband (old Website)
- Server Support Forum: mod_cband RPMS fuer Suse 9.3