Wie richte ich HTTP/2-Unterstützung in NGINX ein?

Melden
  1. Einleitung
  2. Voraussetzungen
  3. NGINX-Konfiguration anpassen
  4. HTTP/2 überprüfen
  5. Weiterführende Optimierungen
  6. Zusammenfassung

Einleitung

HTTP/2 ist die neuere Version des HTTP-Protokolls, die im Vergleich zu HTTP/1.1 eine verbesserte Leistung und Effizienz bei der Übertragung von Webinhalten bietet. Sie ermöglicht Multiplexing, Header-Kompression und Server-Push, was besonders bei Websites mit vielen Ressourcen zu schnelleren Ladezeiten führt. Um HTTP/2 in NGINX zu aktivieren, sind einige Anpassungen in der Konfiguration notwendig, insbesondere im Zusammenhang mit SSL/TLS, da HTTP/2 in der Praxis meist nur über HTTPS verwendet wird.

Voraussetzungen

Um HTTP/2 in NGINX nutzen zu können, ist eine aktuelle Version von NGINX erforderlich, die HTTP/2 unterstützt. NGINX unterstützt HTTP/2 ab Version 1.9.5 aufwärts. Zudem wird zwingend HTTPS benötigt, das heißt, ein gültiges SSL/TLS-Zertifikat muss vorliegen. Für Testzwecke kann auch ein selbstsigniertes Zertifikat genutzt werden, für den produktiven Einsatz empfiehlt sich jedoch ein Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle.

NGINX-Konfiguration anpassen

Die Konfiguration von NGINX erfolgt über die Datei nginx.conf oder über separate Server-Block-Dateien, die in der Regel unter /etc/nginx/sites-available/ liegen. Wichtig ist, den Server-Block, der HTTPS bedient, zu bearbeiten. Dort muss im listen-Direktiv das Attribut http2 hinzugefügt werden, um HTTP/2 zu aktivieren. Ein Beispiel für eine solche Listen-Direktive lautet:

listen 443 ssl http2;

Diese Zeile sagt NGINX, auf Port 443 (standardmäßig für HTTPS) SSL zu verwenden und HTTP/2 zu aktivieren.

Zusätzlich stellt man sicher, dass die SSL-Zertifikate korrekt eingebunden sind, etwa so:

ssl_certificate /etc/ssl/certs/meinzertifikat.pem;ssl_certificate_key /etc/ssl/private/meinschluessel.key;

Ein vollständiges Beispiel eines Server-Blocks mit HTTP/2-Unterstützung könnte folgendermaßen aussehen:

server { listen 443 ssl http2; server_name www.meinedomain.de; ssl_certificate /etc/ssl/certs/meinzertifikat.pem; ssl_certificate_key /etc/ssl/private/meinschluessel.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; }}

HTTP/2 überprüfen

Nachdem die Konfiguration editiert wurde, sollte die NGINX-Konfiguration mit nginx -t auf Fehler geprüft werden. Wenn alles korrekt ist, muss NGINX neu geladen oder neu gestartet werden, damit die Änderungen wirksam werden:

sudo systemctl reload nginx

Um zu überprüfen, ob HTTP/2 wirklich aktiv ist, kann man Tools wie SSL Labs verwenden oder in modernen Browsern in den Entwickler-Werkzeugen unter Netzwerk (Network) nachsehen, ob der y der Verbindungen als "h2" (HTTP/2) angezeigt wird.

Weiterführende Optimierungen

Neben der reinen Aktivierung von HTTP/2 kann es sinnvoll sein, die TLS-Einstellungen und Sicherheitsheader zu optimieren, um die Performance und Sicherheit der Website weiter zu verbessern. Beispielsweise kann man zusätzliche Header wie Strict-Transport-Security setzen oder TLS 1.3 bevorzugen, sofern vom Server und den Clients unterstützt.

Zusammenfassung

Um HTTP/2 in NGINX zu nutzen, ist vor allem sicherzustellen, dass eine aktuelle NGINX-Version und ein SSL-Zertifikat vorhanden sind. Die entscheidende Änderung in der NGINX-Konfiguration besteht darin, bei der HTTPS-Listener-Deklaration das http2-Flag hinzuzufügen. Danach sollte die Konfiguration getestet und NGINX neu geladen werden. Mit dieser Anpassung profitieren Webseiten von den zahlreichen Vorteilen des HTTP/2-Protokolls.

0

Kommentare