Nginx, entwickelt von Igor Sysoev, ist ein leistungsstarker Webserver, der andere wichtige Aufgaben wie Lastenausgleich, Dienst als Mail-Proxy oder Reverse-Proxy und HTTP-Caching ausführen kann. Obwohl es nicht so beliebt ist wie Apache, ist Nginx ein effizienterer Webserver in Bezug auf Ressourcenzuweisung und Effizienz.
Es gibt eigentlich zwei verschiedene Versionen von Nginx. Nginx ist eine Open-Source-Software, während Nginx Plus die kommerzielle Version mit Benutzersupport ist. Beide unterstützen HTTP/2 vollständig.
Bitte unterstützt meine Arbeit
Voraussetzungen
Um HTTP/2 auf Nginx zu aktivieren, müsst ihr einige Dinge wissen:
- Es ist wichtig, HTTPS auf eurem Server zu aktivieren, da fast alle Browser HTTP/2 nur über HTTPS zulassen.
- TLS-Protokollversion 1.2 und höher mit modernen Verschlüsselungssammlungen ist erforderlich.
- Nginx Open Source Version 1.9.5 oder höher bietet integrierte Unterstützung für HTTP/2. Nginx Plus R7 und alle höheren Versionen unterstützen HTTP/2 vollständig.
So aktivieren Sie HTTP/2 in Nginx
Sehen wir uns an, wie ihr http/2 auf dem Nginx-Server aktivieren könnt.
- Erstellt eine Sicherungskopie der Datei nginx.conf (Standardspeicherort: /etc/nginx/nginx.conf).
- Ändert danach die Datei, indem ihr http2 unter der Listen-Direktive hinzufügen.
listen 443 ssl http2;
Die SSL-Konfiguration muss aktualisiert werden, stellt also sicher, dass sie unter Serverblock mit SSL-Konfiguration hinzugefügt wird, da HTTP/2 nur über HTTPS unterstützt wird.
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;
}
Startet Nginx mit dem folgenden Befehl neu:
sudo systemctl reload nginx.service
Um zu überprüfen, ob HTTP/2 auf der Website aktiviert ist, könnt ihr folgende Webseite verwenden.
Fehlerbehebung
- Wenn sich der Nginx-Server hinter einer Webanwendungsfirewall befindet, stellt sicher, dass die Webanwendungsfirewall (WAF) in der Lage ist, HTTP/2-Datenverkehr zu analysieren.
- Stellt sicher, dass der SPDY-Parameter aus allen Listen-Direktiven entfernt wird. Seit Google SPDY im Jahr 2016 eingestellt hat, wurde die Unterstützung dafür eingestellt.
- Wenn ssl_prefer_server_ciphers auf on gesetzt ist und/oder eine in Anhang A: TLS 1.2 Cipher Suite Black List definierte Liste von ssl_ciphers verwendet wird, kommt es im Client-Browser zu Handshake-Fehlern und funktioniert nicht.