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

    1 Kommentar

    Leave A Reply