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 <code>robots.txtcode> aussperrt.
Lösung:
Wir installieren <code>mod_cbandcode>:
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 <code>make installcode> das Modul direkt in die <code>/etc/apache2/httpd.confcode> einzubinden. Dies ist evtl. (vor allem unter Debian) nicht erwünscht. Oder unter Fedora ist der Pfad z.B. fehlerhaft und muß <code>/etc/httpd/conf/http.confcode> 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 <code>mod_cband.socode> evtl. anders sein.)
Das Modul braucht ein (für Apache) beschreibbares Verzeichnis:
(Achtung: Der Apache-User <code>www-datacode> 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 <code>mod_cbandcode> in <code>/etc/apache2/httpd.confcode>:
CBandScoreFlushPeriod 1 CBandRandomPulse On
Nun kann pro <code>VirtualHostcode> der Speed beliebig gesetzt werden.
Wichtig: die CBand-Direktiven müssen immer nach dem <code>ServerNamecode> stehen. Diese Angabe ist für <code>mod_cbandcode> 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>
<code>CBandSpeedcode> setzt hier das Limit des Traffics auf 1024 Kbits pro Sekunde mit maximal 10 Request pro Sekunde und 30 offenen Connections.
<code>CBandRemoteSpeedcode> setzt ein Limit pro Request/Client. Die Parameter sind die selben wie bei <code>CBandSpeedcode> nur in anderer Schreibweise.
Mit <code>CBandLimitcode>, <code>CBandPeriodcode> und <code>CBandScoreboardcode> wird ein monatliches (4-Wochen-Intervall) Download-Volumen von 100 MByte fest gelegt.
Weitere Möglichkeiten von <code>mod_cbandcode> finden sich in der Dokumentation.
Weiter Links:
- Official Website of mod_cband (old Website)
- Server Support Forum: mod_cband RPMS fuer Suse 9.3