Brotli vs. Gzip: Kompression auf Nginx richtig einstellen

Die Kompression von Webinhalten ist ein entscheidender Faktor für schnelle Ladezeiten und effiziente Bandbreitennutzung. Nginx unterstützt verschiedene Kompressionsverfahren, darunter Gzip und Brotli. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie Gzip und Brotli korrekt konfiguriert werden, um die Performance von Webservern zu optimieren und gleichzeitig die Kompatibilität sicherzustellen.

Warum Kompression wichtig ist

Kompression reduziert die Größe von HTML-, CSS- und JavaScript-Dateien, wodurch die Ladezeiten verkürzt und der Datenverbrauch minimiert wird. Dies verbessert die Nutzererfahrung und wirkt sich positiv auf SEO aus.

Vorteile von Kompression

  • Reduzierte Ladezeiten für Webseiten
  • Geringerer Bandbreitenverbrauch
  • Verbesserte Core Web Vitals und SEO-Werte
  • Entlastung von Netzwerkressourcen

Gzip-Kompression auf Nginx

Gzip ist das klassische Kompressionsverfahren, das von allen Browsern unterstützt wird. Es eignet sich besonders für Textdateien.

Gzip aktivieren

sudo nano /etc/nginx/nginx.conf
http {
    gzip on;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
sudo nginx -t
sudo systemctl reload nginx

Wichtige Parameter

  • gzip_comp_level: Kompressionsstufe (1–9), höhere Werte = bessere Kompression, mehr CPU
  • gzip_types: Welche MIME-Typen komprimiert werden
  • gzip_vary: Setzt den Vary-Header, um Proxy-Caching zu verbessern

Brotli-Kompression auf Nginx

Brotli ist ein moderneres Kompressionsverfahren, das insbesondere für Textdateien eine höhere Kompressionsrate als Gzip bietet. Die Unterstützung muss in Nginx über ein Modul oder eine neuere Version aktiviert werden.

Brotli Modul installieren (Ubuntu)

sudo apt install nginx-module-brotli -y
sudo nano /etc/nginx/modules-enabled/50-mod-brotli.conf

Brotli aktivieren

http {
    brotli on;
    brotli_comp_level 6;
    brotli_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
sudo nginx -t
sudo systemctl reload nginx

Wichtige Parameter

  • brotli_comp_level: Kompressionsstufe (1–11), höhere Werte = bessere Kompression, höhere CPU-Auslastung
  • brotli_types: Welche MIME-Typen komprimiert werden
  • Vorteil gegenüber Gzip: Bessere Kompressionsrate bei modernen Browsern

Gzip vs. Brotli – Vergleich

Beide Kompressionsverfahren haben Vor- und Nachteile. Die Wahl hängt von Kompatibilität, Performance und Ressourcennutzung ab.

Performance-Vergleich

  • Brotli: bessere Kompressionsrate, höhere CPU-Belastung
  • Gzip: breitere Browserunterstützung, etwas geringere Kompression
  • Empfehlung: Brotli für moderne Browser, Gzip als Fallback

Kompatibilität

  • Brotli: Chrome, Firefox, Edge, Safari ab bestimmten Versionen
  • Gzip: praktisch alle Browser

Testing der Kompression

Nach der Konfiguration sollte die Kompression überprüft werden, um sicherzustellen, dass Inhalte korrekt übertragen werden.

Gzip testen

curl -H "Accept-Encoding: gzip" -I https://meinewebsite.de

Brotli testen

curl -H "Accept-Encoding: br" -I https://meinewebsite.de

Netzwerk und Subnetze

Die Optimierung von Kompression wirkt sich auch auf das Netzwerk aus, insbesondere bei begrenzter Bandbreite.

Subnetzberechnung

Beispiel: Server-IP 192.168.70.10/24

<math>
Subnetzadresse = 192.168.70.10 & 255.255.255.0 = 192.168.70.0
Broadcastadresse = 192.168.70.0 | ~255.255.255.0 = 192.168.70.255
</math>

Netzwerkinterface konfigurieren

sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.70.10/24
      gateway4: 192.168.70.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply

Best Practices

  • Brotli für moderne Browser aktivieren, Gzip als Fallback nutzen
  • Kompressionsstufen moderat wählen, um CPU-Belastung zu begrenzen
  • MIME-Typen sorgfältig definieren, nur Textdateien komprimieren
  • Firewall, HTTPS und Sicherheitsheader zusätzlich konfigurieren
  • Regelmäßige Tests der Kompression durchführen
  • Monitoring implementieren, um Server-Performance zu überwachen

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles