Website-Icon .: blog cscholz.io :.

Apache2: Bandbreitenbeschränkung

Aus gegebenem Anlass musste ich den Traffic auf einem Apache 2 beschränken. Für die Aktualisierung von ThinClients musste pro Gerät ein 1 GB Image herunter geladen werden. Um nun die Bandbreite des Netzes nicht ins Bodenlose zu reißen musste halt die Bandbreite für HTTP Downloads Limitiert werden. Dies geht beim Apache 2 mit dem Modul cban, dass per apt-get installiert werden kann.

apt-get install libapache2-mod-cband

Anschließend aktivieren wir das Modul

a2enmod cband

Erweitern die httpd.conf aus Performancegründen

/etc/apache2/httpd.conf:
CBandScoreFlushPeriod 1
CBandRandomPulse On

Und tragen nun pro VirtualHost die Limitierung ein.
Wichtig ist, dass dieseEinträge nach dem Eintrag ServerName auftauchen!!!

<VirtualHost 1.2.3.4>
  ServerName www.domain.tld
  CBandScoreboard /var/www/scoreboard
  CBandPeriod 4W
  CBandDefaultExceededCode 509
 
  CBandLimit 2500G
  #2.5 TB Limit pro CBandPeriod
 
  CBandSpeed 15000000 5 10
  # 15 MB, 5 Requests, 10 Verbindungen (Gesamt)
 
  CBandRemoteSpeed 2000000 3 1
  # 2 MB, 3 Requests, 1 Verbindung (pro Client)
  ...

Was bedeutet diese Konfiguration im einzelnen?

  1. /var/www/scoreboard wir benutzt um die Nutzung und Limits zu loggen
  2. resettet die Limitierung alle 4 Wochen
  3. Gibt einen 509 Fehler wenn das Limit erreicht wurde
  4. erlaubt 2.5 TB Pro Intervall (4W)
  5. erlaubt 15 MBps bei 5 requests pro Sekunden und 10 Verbindungen (gesamt)
  6. erlaubt 2 MBps mit 3 requests pro Sekunden und 1 Verbindung (pro Client)

Nun noch den Ordner /var/www/scoreboard erstellen

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

Abschießend den Server neu starten

/etc/init.d/httpd restart

Datenübertragung:
# kbps: 1024 bits pro Sekunde
# Mbps: 1024*1024 bits pro Sekunde
# Gbps: 1024*1024*1024 bits pro Sekunde
# Grundeinstellung: kbps

Traffic-Quote:
* K: 1000 bytes
* M: 1000*1000 bytes
* G: 1000*1000*1000 bytes
* Ki: 1024 bytes
* Mi: 1024*1024 bytes
* Gi: 1024*1024*1024 bytes
* Grundeinstellung is K.

Zeitrahmen:
* S: Sekunde
* M: minute
* H: Stunden
* D: Tage
* W: Wochen
* Grundeinstellung: S

Die mobile Version verlassen