Hypertext Transfer Protocol Version 2 (HTTP/2 ) ist die neueste Version des HTTP-Protokolls, das 2015 als IETF-Standard in RFC 7540 veröffentlicht wurde. Der Schwerpunkt des Protokolls liegt auf der Leistung. insbesondere vom Endbenutzer wahrgenommene Latenz, Netzwerk- und Serverressourcennutzung. Ein Hauptziel besteht darin, die Verwendung einer einzelnen Verbindung von Browsern zu einer Website zu ermöglichen. Das Protokoll ist abwärtskompatibel, daher sind HTTP-Methoden, Statuscodes und Semantik dieselben wie bei früheren Versionen des Protokolls. Nginx unterstützt HTTP/2 seit Version 1.9.5. In diesem Tutorial gehe ich davon aus, dass Sie bereits eine funktionierende TLS-Konfiguration haben und dass Sie die erforderliche Nginx-Version auf Ihrer bevorzugten Linux-Distribution installiert haben und dass Sie wissen, wie man Let's Encrypt verwendet, oder dass Sie wissen, wie man ausstellt ein selbstsigniertes Zertifikat.
Anforderungen
Um HTTP/2 in Nginx zu aktivieren, müssen Sie die folgenden Anforderungen erfüllen:
- Nginx-Version 1.9.5 oder höher. Sie können Ihre Nginx-Version überprüfen, indem Sie (
nginx -v
) Befehl. - OpenSSL-Version 1.0.2 oder höher. Sie können Ihre OpenSSL-Version überprüfen, indem Sie den Befehl (OpenSSL-Version) ausführen.
- SSL/TLS-Zertifikat von Let's Encrypt oder ein selbstsigniertes Zertifikat.
- TLS 1.2 oder höheres Protokoll aktiviert. Andernfalls können Sie HTTP/2 nicht verwenden. Implementierungen von HTTP/2 müssen TLS Version 1.2 oder höher für HTTP/2 über TLS verwenden.
HTTP/2 in Nginx aktivieren
Um HTTP/2 in Nginx zu aktivieren, müssen wir den http2
hinzufügen Parameter zum listen
Richtlinie in unserem virtuellen Host:
listen 443 ssl http2;
Und laden Sie Ihre Nginx-Konfiguration neu:
sudo systemctl reload nginx.service
Hier ist die minimale virtuelle Serverkonfiguration, die verwendet werden kann, um HTTP/2 in einem virtuellen Host zu aktivieren:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
root /path/to/public;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
ssl_protocols TLSv1.2;
}
Um zu prüfen, ob Ihr Server HTTP/2 unterstützt, können Sie Ihre Browser-Entwicklungstools oder Nginx-Protokolldateien verwenden. Unten ist ein Screenshot aus dem Google Chrome-Browser, der HTTP/2 in Aktion auf der Domain https://example.com zeigt.
Sie können auch die eingebettete Nginx-Variable $http2 verwenden, um das ausgehandelte Protokoll anzuzeigen. Diese Variable protokolliert:„h2
“ für HTTP/2 über TLS, „h2c
” für HTTP/2 über Klartext-TCP oder andernfalls eine leere Zeichenfolge im Nginx-Zugriffsprotokoll, wenn dies so konfiguriert ist.
Und das ist alles, was Sie tun müssen, um HTTP/2 auf Ihrem Nginx-Server zu aktivieren.
Links
- RFC 7540
- HTTP/2