Technologieführer

mod_deflate auf Lighttpd 1.4 (Debian Etch)

5 min read Webserver Aktualisiert 21 Oct 2025
mod_deflate auf Lighttpd 1.4 (Debian Etch)
mod_deflate auf Lighttpd 1.4 (Debian Etch)

TL;DR

Diese Anleitung zeigt Schritt für Schritt, wie Sie mod_deflate in Lighttpd 1.4 unter Debian Etch patchen, bauen und konfigurieren. Dadurch reduzieren Sie Bandbreitenverbrauch und beschleunigen das Laden von Seiten ohne ältere Browser auszuschließen.

Kurzbeschreibung

In diesem Tutorial beschreibe ich, wie Sie mod_deflate für einen Lighttpd 1.4 Webserver auf Debian Etch installieren und konfigurieren. mod_deflate komprimiert statische und dynamische Inhalte (z. B. PHP), während das ältere mod_compress nur statische Dateien komprimiert. Debian Etch liefert Lighttpd 1.4.13, das wir mit einem Patch erweitern, um mod_deflate zu unterstützen. Komprimierte HTML/Text/XML-Dateien können auf etwa 20–30 % ihrer ursprünglichen Größe schrumpfen, was Datenübertragung spart und Nutzer mit langsamen Verbindungen deutlich schneller bedient.

Wichtig: Kompression erhöht die CPU-Last leicht, reduziert aber meist die Gesamtlatenz wegen kürzerer Übertragungszeiten.

1 Vorbemerkung

Sie können dieser Anleitung folgen, unabhängig davon, ob Lighttpd bereits installiert ist oder nicht. Wir bauen ein neues Debian-Paket (lighttpd_1.4.13-4etch1_i386.deb), das ein vorhandenes Lighttpd ersetzt.

Wenn Lighttpd bereits installiert ist, prüfen Sie Version und Features mit:

lighttpd -V

Die Ausgabe sollte Version 1.4.13 zeigen (Beispielausgabe im Original). Achten Sie auf eingebundene Features wie zlib- und bzip2-Support.

2 Lighttpd mit mod_deflate bauen

Installieren Sie zunächst die grundlegenden Build-Tools:

apt-get install build-essential

Wechseln Sie danach nach /usr/src und laden Sie das Debian-Quellpaket von Lighttpd:

cd /usr/src
apt-get source lighttpd

Mit ls -l sehen Sie das Quellverzeichnis (z. B. lighttpd-1.4.13) und die zugehörigen Dateien.

Laden Sie den mod_deflate-Patch herunter und patchen Sie die Quellen:

wget http://trac.lighttpd.net/trac/attachment/wiki/Mod_Deflate/lighttpd-1.4.13.mod_deflate.jz.patch?format=raw
mv lighttpd-1.4.13.mod_deflate.jz.patch?format=raw lighttpd-1.4.13.mod_deflate.jz.patch
cd lighttpd-1.4.13
patch -p1 < ../lighttpd-1.4.13.mod_deflate.jz.patch

Wenn das Patchen erfolgreich ist, bauen Sie das Paket mit:

dpkg-buildpackage

Falls dpkg-buildpackage fehlende Build-Abhängigkeiten meldet, installieren Sie diese, z. B.:

apt-get install debhelper cdbs libssl-dev zlib1g-dev libbz2-dev libattr1-dev libpcre3-dev libmysqlclient15-dev libldap2-dev libfcgi-dev libgdbm-dev libmemcache-dev liblua5.1-0-dev dpatch patchutils pkg-config uuid-dev libsqlite3-dev libxml2-dev

Führen Sie danach dpkg-buildpackage erneut aus. Der Build erzeugt ein neues .deb-Paket in /usr/src (dieser Vorgang kann einige Zeit dauern).

Hinweis: Der Patch benötigt bzip2-Unterstützung in Lighttpd. Debian hat bzip2 standardmäßig aktiviert, daher ist in der Regel kein weiteres Eingreifen nötig.

Nach erfolgreichem Build finden Sie unter /usr/src u. a. eine Datei wie lighttpd_1.4.13-4etch1_i386.deb. Installieren Sie das Paket mit:

dpkg -i lighttpd_1.4.13-4etch1_i386.deb

Kopieren Sie anschließend das neue Modul an den richtigen Ort:

cp /usr/src/lighttpd-1.4.13/debian/tmp/usr/lib/lighttpd/mod_deflate.so /usr/lib/lighttpd

Prüfen Sie die neue Build-Information:

lighttpd -V

Die Build-Date zeigt das aktuelle Datum der kompilierten Version. Es ist normal, wenn mod_deflate nicht explizit in der Feature-Liste erscheint.

3 Lighttpd konfigurieren

Die Konfiguration von Lighttpd liegt in /etc/lighttpd/lighttpd.conf. Öffnen Sie die Datei und fügen Sie “mod_deflate” zur server.modules-Zeile hinzu. Wichtig: Ist mod_rewrite aktiviert, listet Lighttpd mod_deflate hinter mod_rewrite.

vi /etc/lighttpd/lighttpd.conf

Beispiel (auszug):

| [...] server.modules = ( "mod_access", "mod_alias", "mod_accesslog", "mod_fastcgi", # "mod_rewrite", "mod_deflate", # "mod_redirect", # "mod_status", # "mod_evhost", # "mod_compress", # "mod_usertrack", # "mod_rrdtool", # "mod_webdav", # "mod_expire", # "mod_flv_streaming", # "mod_evasive" ) [...] |

Fügen Sie in derselben Konfigurationsdatei am Ende die mod_deflate-Einstellungen ein:

| [...] deflate.enabled = "enable" deflate.compression-level = 9 deflate.mem-level = 9 deflate.window-size = 15 # deflate.bzip2 only in patch for 1.4.x deflate.bzip2 = "enable" # deflate.allowed_encodings only in 1.5.x #deflate.allowed_encodings = ( "bzip2", "gzip", "deflate" ) deflate.min-compress-size = 200 #deflate.sync-flush = "enable" deflate.output-buffer-size = 4096 deflate.work-block-size = 512 deflate.mimetypes = ("text/html", "text/plain", "text/css", "text/javascript", "text/xml") #deflate.debug = "enable" |

Starten Sie Lighttpd neu, damit die Änderungen aktiv werden:

/etc/init.d/lighttpd restart

Wenn Seiten danach leer erscheinen, reduzieren Sie deflate.output-buffer-size auf 2048 oder 1024 und starten Sie den Dienst neu.

4 Überprüfen, dass Kompression funktioniert

Aktivieren Sie zu Debug-Zwecken deflate.debug = “enable” in der Konfiguration und prüfen Sie das Error-Log:

tail -f /var/log/lighttpd/error.log

Bei Zugriff auf eine komprimierte Datei sehen Sie Log-Einträge wie in der Original-Anleitung, die die Input- und Output-Größen zeigen (z. B. aus: 53875 in -> 8446 out).

Faktenbox

  • Typische Kompressionsrate für HTML/Text/XML: 70–80 % Reduktion (Dateien bleiben bei ~20–30 % der Originalgröße).
  • Minimalgröße zur Kompression: in der Beispielkonfiguration 200 Bytes.
  • Empfohlene Standard-Parameter: compression-level 9, output-buffer-size 4096 (bei Problemen verkleinern).

Wann mod_deflate nicht passt

  • Sehr CPU-beschränkte Server: Bei stark hoher Last kann zusätzliche Kompression die CPU über Gebühr belasten.
  • Nicht-HTTP-kompatible Clients: Alte oder ungewöhnliche Clients, die keine Content-Encoding-Header verstehen, erhalten aber unkomprimiert ausgelieferte Inhalte durch die Verhandlung zwischen Browser und Server.
  • Bereits komprimierte Inhalte (z. B. PNG, JPEG, ZIP): Keine zusätzliche Kompression — ggf. via mimetypes ausschließen.

Alternative Ansätze

  • Server-seitige Kompression via Reverse-Proxy (z. B. Varnish/HAProxy + gzip): Entlastet Backend-Server, kann Caching verbessern.
  • HTTP/2 + TLS: Bietet Latenzvorteile; Kompression bleibt sinnvoll für Textinhalte.
  • Vorab-komprimierte Assets (z. B. .gz-Dateien für statische Ressourcen) und passende serverseitige Konfiguration zum Ausliefern dieser Dateien.

Schnell-Playbook (Kurz-Anleitung)

  1. apt-get source lighttpd
  2. Patch herunterladen und anwenden
  3. Fehlende Build-Dependencies installieren
  4. dpkg-buildpackage
  5. dpkg -i lighttpd_*.deb
  6. cp mod_deflate.so nach /usr/lib/lighttpd
  7. server.modules anpassen und deflate.* Einstellungen ergänzen
  8. /etc/init.d/lighttpd restart
  9. deflate.debug aktivieren und /var/log/lighttpd/error.log prüfen

Rollen-Checkliste für Administratoren

  • Systemadministrator:
    • Backup der aktuellen lighttpd.conf anlegen
    • Paket- und Quellcode-Downloads in /usr/src durchführen
    • Build-Umgebung absichern und Abhängigkeiten installieren
  • Release-Manager:
    • Prüfen, dass das neue .deb signiert bzw. vertrauenswürdig ist
    • Deployment-Fenster für Neustart planen
  • Support/Helpdesk:
    • Anleitung für Fehlerdiagnose (siehe nächster Abschnitt) bereithalten

Fehlerbehebung (Mini-Runbook)

  • Dienst startet nicht: /var/log/lighttpd/error.log prüfen. Konfigurationssyntax überprüfen.
  • Leere Seiten nach Aktivierung: deflate.output-buffer-size auf 2048 oder 1024 reduzieren, Dienst neu starten.
  • Keine Kompression im Log: deflate.debug = “enable” setzen, Log beobachten, Browser-Request-Header prüfen (Accept-Encoding).
  • Modul nicht gefunden: Sicherstellen, dass /usr/lib/lighttpd/mod_deflate.so vorhanden ist und die Dateirechte stimmen.

Mini-Methodologie: Sichere Reihenfolge beim Rollout

  1. Testumgebung einrichten (identische Lighttpd-Version)
  2. Patch anwenden und Paket bauen
  3. Funktionalität mit Test-Clients verifizieren
  4. Konfiguration schrittweise in Produktion ausrollen (z. B. Canary-Hosts)
  5. Monitoring (Fehlerlog, CPU, Antwortzeiten) für 24–72 Stunden beobachten

1-zeiliges Glossar

  • mod_deflate: Lighttpd-Plugin zum Komprimieren von HTTP-Antworten mittels gzip/bzip2.
  • deflate.*: Konfigurationsprefix für mod_deflate-Optionen in lighttpd.conf.

Sicherheit und Datenschutzhinweis

Kompression beeinflusst keine personenbezogenen Daten per se. Bei Einsatz von Kompression in Kombination mit TLS gelten die üblichen Anforderungen: TLS korrekt konfigurieren und Logging auf sensible Inhalte prüfen.

Endezusammenfassung

mod_deflate bringt in Lighttpd 1.4 auf Debian Etch spürbare Bandbreiten- und Ladezeitvorteile, besonders für textbasierte Inhalte. Der Aufwand besteht hauptsächlich im Patchen und Neubauen des Pakets sowie in der sorgfältigen Konfiguration. Testen Sie vor dem produktiven Rollout und überwachen Sie CPU- und Latenzmetriken nach dem Einsatz.

Links

Autor
Redaktion

Ähnliche Materialien

Podman auf Debian 11 installieren und nutzen
DevOps

Podman auf Debian 11 installieren und nutzen

Apt-Pinning: Kurze Einführung für Debian
Systemadministration

Apt-Pinning: Kurze Einführung für Debian

FSR 4 in jedem Spiel mit OptiScaler
Grafikkarten

FSR 4 in jedem Spiel mit OptiScaler

DansGuardian + Squid (NTLM) auf Debian Etch installieren
Netzwerk

DansGuardian + Squid (NTLM) auf Debian Etch installieren

App-Installationsfehler auf SD-Karte (Error -18) beheben
Android

App-Installationsfehler auf SD-Karte (Error -18) beheben

Netzwerkordner mit KNetAttach in KDE
Linux Netzwerk

Netzwerkordner mit KNetAttach in KDE