Zurück zum Blog

So aktivieren Sie HTTP/2 (und HTTP/3): Nginx, Apache, CDN

2025-08-139 Min Lesezeit

Wünschen Sie schnellere Ladezeiten? Aktivieren Sie HTTP/2 und, wenn möglich, HTTP/3. Dieser Leitfaden zeigt, wie Sie beides auf Nginx, Apache und gängigen CDNs aktivieren, wie Sie überprüfen, ob sie funktionieren, und schnelle Lösungen, falls nicht.

Warum HTTP/2 (und HTTP/3)?

HTTP/1.1 öffnet mehrere Verbindungen und wiederholt Header. HTTP/2 multiplexed Anfragen über eine Verbindung und komprimiert Header. HTTP/3 fügt QUIC über UDP hinzu, um Transport-Level-Blocking zu vermeiden. Ergebnis: schnellere Ladezeiten, insbesondere auf Mobilgeräten und bei Verbindungen mit hoher Latenz.

Schnelle Prüfungen: Sind sie aktiviert?

  • DevTools: Netzwerk-Tab > Spalte „Protokoll“ hinzufügen. Suchen Sie nach h2 oder h3.
  • CLI: curl -I --http2 https://example.com
  • HTTP/3: curl -I --http3 https://example.com (neueres curl)
  • Wasserfälle: Viele Dateien sollten gleichzeitig über eine Verbindung starten.

Nginx: HTTP/2 (und HTTP/3) aktivieren

server {
   # HTTP/2
   listen 443 ssl http2;
   listen [::]:443 ssl http2;

   # Auskommentieren, wenn Ihr Build QUIC unterstützt
   # listen 443 quic reuseport;
   # add_header Alt-Svc 'h3=":443"; ma=86400' always;

   server_name example.com;

   ssl_protocols TLSv1.2 TLSv1.3;
   ssl_prefer_server_ciphers off;
   ssl_session_cache shared:SSL:10m;
   ssl_session_timeout 1d;

   add_header Strict-Transport-Security "max-age=31536000" always;
   # Ihre SSL-Zertifikatkonfiguration hier
}

Voraussetzungen: HTTP/2-Modul kompiliert, TLS-Bibliothek mit ALPN-Unterstützung. Die meisten modernen Pakete enthalten beides.

Apache: HTTP/2 aktivieren

# Modul laden
LoadModule http2_module modules/mod_http2.so

# Global oder in einem vhost aktivieren
Protocols h2 http/1.1

# Optional: auf modernes TLS beschränken
H2ModernTLSOnly on

Die Apache HTTP/3-Unterstützung ist experimentell. Bleiben Sie für die Produktion bei HTTP/2.

CDN: HTTP/2/3 aktivieren (Cloudflare, CloudFront, Akamai, Fastly)

Die meisten CDNs unterstützen HTTP/2 und HTTP/3. Aktivieren Sie sie für HTTPS-Traffic. Öffnen Sie UDP/443, wenn Sie Ihre eigene Edge betreiben und HTTP/3 wünschen. Wenn UDP blockiert ist, greifen Clients auf HTTP/2 zurück. Das Protokoll vom CDN zum Ursprung ist getrennt; verwenden Sie es, wenn es einfach ist, aber die Auswirkung auf den Benutzer kommt von der Edge.

Cloudflare

Dashboard > Speed > Optimization > HTTP/2 und HTTP/3 (standardmäßig aktiviert)

AWS CloudFront

Distributionseinstellungen > Unterstützte HTTP-Versionen > HTTP/2 und HTTP/3

Fastly

Servicekonfiguration > Einstellungen > HTTP/2- und HTTP/3-Unterstützung

Überprüfung + Fallback-Verhalten

Browser verhandeln automatisch während des TLS-Handshakes über ALPN. Wenn HTTP/3 fehlschlägt (UDP blockiert), greifen sie auf HTTP/2 zurück. Wenn HTTP/2 fehlschlägt (alter Server), verwenden sie HTTP/1.1. Keine manuelle Intervention erforderlich.

Überprüfen Sie Ihre Einrichtung:

  • Moderne Browser zeigen h2/h3 in der DevTools-Protokollspalte an
  • Wasserfall-Diagramme zeigen parallele Downloads über eine Verbindung an
  • H3 hilft oft mobilen/verlustbehafteten Verbindungen mehr als Desktop

Fehlerbehebung

HTTP/2 funktioniert nicht?

  • Prüfen Sie, ob Ihr Server-Build das HTTP/2-Modul enthält
  • Stellen Sie sicher, dass die TLS-Bibliothek ALPN unterstützt (OpenSSL 1.0.2+)
  • Stellen Sie sicher, dass Sie über HTTPS testen (Browser verlangen dies)
  • Prüfen Sie, ob ein Proxy/Load Balancer auf HTTP/1.1 herabstuft

HTTP/3 funktioniert nicht?

  • Stellen Sie sicher, dass UDP-Port 443 geöffnet ist
  • Prüfen Sie, ob Ihr Build QUIC unterstützt
  • Bestätigen Sie, dass der Alt-Svc-Header gesendet wird
  • Testen Sie von verschiedenen Netzwerken (einige blockieren UDP)

FAQs

Benötige ich HTTPS für HTTP/2?

Ja. Browser verwenden HTTP/2 nur über TLS.

Ist HTTP/3 erforderlich?

Nein, aber aktivieren Sie es, wenn Sie können. Behalten Sie HTTP/2 als Fallback.

Wie überprüfe ich, ob HTTP/2/3 aktiv ist?

Verwenden Sie die Protokollspalte von DevTools oder führen Sie curl mit --http2 oder --http3 aus.

Warum hat die Aktivierung von HTTP/2 nicht viel geändert?

App-Langsamkeit und Netzwerkverluste gelten weiterhin. Cachen und profilieren Sie Ihre App; verwenden Sie HTTP/3 für verlustbehaftete Verbindungen.