Website-Suche

So aktivieren Sie HTTP/2.0 in Nginx


HTTP/2 ist der neueste Standard für das HTTP-Protokoll und der Nachfolger von HTTP/1.1. Aufgrund der Vorteile, die es Webentwicklern und Benutzern im Allgemeinen bringt, erfreut es sich immer größerer Beliebtheit. Es bietet einen optimierten Transport für die HTTP-Semantik, indem es alle Kernfunktionen von HTTP/1.1 unterstützt, zielt aber darauf ab, in mehrfacher Hinsicht effizienter zu sein.

Zusätzlich zu HTTP/2 gibt es viele Funktionen, die Ihnen mehr Möglichkeiten zur Optimierung einer Website/Anwendung bieten. Es bietet echtes Multiplexing und Parallelität, bessere Header-Komprimierung (Binärkodierung), bessere Priorisierung, bessere Flusskontrollmechanismen und einen neuen Interaktionsmodus namens „Server Push“, der es einem Server ermöglicht, Antworten an einen Client zu senden . Ganz zu schweigen davon, dass HTTP/2 auf dem experimentellen SPDY-Protokoll von Google basiert.

Daher liegt das Hauptaugenmerk von HTTP/2 darauf, die Gesamtladezeit von Webseiten zu verkürzen und so die Leistung zu verbessern. Ein weiterer Schwerpunkt liegt auf der Netzwerk- und Serverressourcennutzung sowie der Sicherheit, da bei HTTP/2 die SSL/TLS-Verschlüsselung obligatorisch ist.

In diesem Artikel erfahren Sie, wie Sie Nginx mit HTTP/2-Unterstützung auf Linux-Servern aktivieren.

Voraussetzungen:

  • Eine funktionierende Installation von NGINX Version 1.9.5 oder höher, erstellt mit dem Modul ngx_http_v2_module.
  • Stellen Sie sicher, dass Ihre Website ein SSL/TLS-Zertifikat verwendet. Wenn Sie keins haben, können Sie es von Let’s Encrypt erhalten oder ein selbstsigniertes Zertifikat verwenden.

Sie können NGINX installieren oder mit einem LEMP-Stack bereitstellen, wie in den folgenden Anleitungen beschrieben:

  • So installieren Sie Nginx unter CentOS 8
  • So installieren Sie den LEMP-Server unter CentOS 8
  • So installieren Sie NGINX, MySQL/MariaDB und PHP auf RHEL 8
  • So installieren Sie LEMP Stack mit PhpMyAdmin in Ubuntu 20.04
  • Installieren Sie Nginx mit Serverblöcken (Virtual Hosts) unter Debian 10
  • So verwenden Sie Nginx als HTTP-Load-Balancer unter Linux

So aktivieren Sie HTTP/2.0 in NGINX

Wenn Sie NGINX installiert haben, überprüfen Sie, ob es mit dem Modul ngx_http_v2_module erstellt wurde, indem Sie den folgenden Befehl ausführen.

strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module

Sobald Sie eine Website/Anwendung haben, die von NGINX mit konfiguriertem HTTPS bereitgestellt wird, öffnen Sie die Datei für den virtuellen Serverblock (oder virtuellen Host) Ihrer Website Bearbeitung.

vi /etc/nginx/conf.d/example.com.conf                    [On CentOS/RHEL]
sudo nano /etc/nginx/sites-available/example.com.conf    [On Ubuntu/Debian]

Sie können die HTTP/2-Unterstützung aktivieren, indem Sie einfach den Parameter http2 zu allen listen-Anweisungen hinzufügen, wie im folgenden Screenshot gezeigt.

listen 443 ssl http2;

Die Beispiel-Serverblockkonfiguration sieht wie folgt aus.


server {
        server_name example.com www.example.com;
        access_log  /var/log/nginx/example.com_access.log;
        error_log  /var/log/nginx/example.com_error.log;

        listen [::]:443 ssl ipv6only=on http2; # managed by Certbot
        listen 443 ssl http2; # managed by Certbot

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot    
}

Speichern Sie die Änderungen in der Datei und schließen Sie sie.

Überprüfen Sie dann die Konfigurationssyntax von NGINX. Wenn sie in Ordnung ist, starten Sie den Nginx-Dienst neu.

nginx -t
systemctl restart nginx

Öffnen Sie als Nächstes einen Webbrowser, um zu überprüfen, ob Ihre Website über HTTP/2 bereitgestellt wird.

http://www.example.com

Um auf die HTTP-Header zuzugreifen, klicken Sie mit der rechten Maustaste auf die angezeigte Webseite, wählen Sie Inspizieren aus der Liste der Optionen aus, um die Entwicklertools zu öffnen, klicken Sie dann auf die Registerkarte Netzwerk und laden Sie die Seite neu die Seite.

Überprüfen Sie unter Protokolle, welches Protokoll Ihre Website verwendet (wenn Sie die Protokollüberschrift nicht sehen, klicken Sie mit der rechten Maustaste auf eine der Überschriften, z. B. Name, und aktivieren Sie dann < (strong>Protokoll aus der Liste, um es als Header anzuzeigen).

Wenn Ihre Website unter HTTP/1.1 läuft, wird unter Protokoll http/1.1 angezeigt, wie im folgenden Screenshot gezeigt.

Wenn es unter HTTP/2 ausgeführt wird, wird unter Protokoll h2 angezeigt, wie im folgenden Screenshot gezeigt. Möglicherweise möchten Sie den Browser-Cache deaktivieren, um die neuesten Inhalte anzuzeigen, die direkt vom Webserver bereitgestellt werden.

Das ist alles! Weitere Informationen finden Sie in der Dokumentation zum Modul ngx_http_v2_module. Zögern Sie nicht, Fragen über das unten stehende Feedback-Formular zu stellen.