Was ist HTTP/2 und wie aktiviert man es auf Nginx

Vom
| Aktualisiert am
| Von Robert Einsle
Erfahre, wie du HTTP/2 auf Nginx aktivierst, um eine bessere Performance zu erzielen. Dieser Beitrag erklärt die Vorteile von HTTP/2 gegenüber HTTP/1.1 und führt dich durch den Aktivierungsprozess auf deinem Server. Optimiere deine Website noch heute​.

HTTP/2 basiert auf SPDY. Die HTTP/2-Spezifikation wurde im Mai 2015 als RFC 7540 veröffentlicht. HTTP/2 hat die gleichen Semantiken wie HTTP/1.1. Im Gegensatz zu HTTP/1.1 ist HTTP/2 jedoch binär und nicht textbasiert. HTTP/2 teilt Antworten in einen Header-Frame und einen Daten-Frame auf.

Verbesserungen gegenüber SPDY

HPACK-Komprimierung HPACK ist eine schnellere und intelligentere Methode zur Komprimierung von Headern und wurde speziell für diese Aufgabe entwickelt. Das ngx_http_spdy_module von Nginx deaktiviert standardmäßig die Header-Gzip-Komprimierung, da diese durch CRIME angegriffen werden kann.

Keine SSL/TLS erforderlich

Das HTTP/2-Protokoll selbst erfordert keine SSL/TLS-Verbindung. Alle großen Browserhersteller wie Firefox, Chrome und Opera geben jedoch an, dass sie TLS benötigen.

ALPN

Mit ALPN können der Browser und der Server von Beginn an eine HTTP/2-Verbindung aufbauen, anstatt erst eine HTTP/1.1-Verbindung herzustellen und dann eine HTTP/2-Verbindung auszuhandeln. ALPN stellt eine Verbesserung gegenüber NPN dar, welches von SPDY verwendet wird.

HTTP/2 auf Nginx aktivieren

Seit der Version 1.9.5 unterstützt Nginx HTTP/2. Daher musst du mindestens die Nginx-Version 1.9.5 installieren. Ich empfehle auch, die neueste Nginx-Version mit dem ngx_pagespeed-Modul zu kompilieren, aber das bleibt dir überlassen. Verwende den folgenden Link, um zu sehen, wie dies gemacht wird.

Ähnlich wie bei SPDY ist es sehr einfach, HTTP/2 auf Nginx zu aktivieren. Überprüfe, ob Nginx mit dem HTTP/2-Modul kompiliert wurde:

sudo nginx -V

Da deine Nginx-Version mindestens 1.9.5 ist, solltest du den folgenden Text in der Ausgabe sehen:

--with-http_v2_module
2023 10 01 15h51 25 1024x133 1

Konfiguriere dann die Server-Block-Datei:

sudo nano /etc/nginx/conf.d/deinedomain.conf

Füge im Server-Abschnitt nach <strong>listen 443 ssl</strong> das Wort http2 hinzu:

server {
    listen 443 ssl http2;
    server_name www.deinebeispielwebseite.com;

    ssl_certificate /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;
......
}

Speichere und schließe die Datei, dann lade die Nginx-Konfiguration neu:

sudo systemctl reload nginx

Wie du überprüfen kannst, ob HTTP/2 auf deiner Webseite funktioniert

Gehe zu https://tools.keycdn.com/http2-test und gib deine Domain ein. Cloudflare hat einen ausgezeichneten Beitrag über Tools zum Testen und Debuggen von HTTP/2.

Robert Einsle
Robert Einsle
schnelle Problemlösung durch langjährige Erfahrung

Schreibe einen Kommentar