Seit den Anfängen des World Wide Web (www ), das HTTP Das Protokoll hat sich im Laufe der Jahre weiterentwickelt, um sichere und schnelle digitale Inhalte über das Internet bereitzustellen.
Die am weitesten verbreitete Version ist HTTP 1.1 und obwohl es mit Funktionsverbesserungen und Leistungsoptimierungen ausgestattet ist, um die Mängel früherer Versionen zu beheben, bleiben einige andere hervorstechende Merkmale zurück, die von HTTP/2 angesprochen wurden .
Was sind die Einschränkungen von HTTP/1.1?
Das HTTP/1.1 -Protokoll ist mit den folgenden Mängeln behaftet, die es weniger ideal machen, insbesondere wenn Webserver mit hohem Datenverkehr ausgeführt werden:
- Verzögerungen beim Laden von Webseiten aufgrund langer HTTP-Header.
- HTTP/1.1 kann nur eine Anfrage für jede Datei pro TCP-Verbindung senden.
- Da HTTP/1.1 eine Anfrage für jede TCP-Verbindung verarbeitet, sind Browser gezwungen, eine Flut von parallelen TCP-Verbindungen zu senden, um die Anfragen gleichzeitig zu verarbeiten. Dies führt zu TCP-Überlastung und letztendlich zu Bandbreitenverschwendung und Netzwerkverschlechterung.
Die oben erwähnten Probleme führten oft zu Leistungseinbußen und hohen Gemeinkosten bei der Bandbreitennutzung. HTTP/2 kam ins Bild, um diese Probleme anzugehen und ist jetzt die Zukunft für HTTP-Protokolle.
Vorteile der Verwendung von HTTP/2
Es bietet folgende Vorteile:
- Header-Komprimierung, die Client-Anfragen minimiert und dadurch den Bandbreitenverbrauch senkt. Der resultierende Effekt sind schnelle Seitenladegeschwindigkeiten.
- Multiplexing mehrerer Anfragen über eine TCP-Verbindung. Sowohl der Server als auch der Client können eine HTTP-Anfrage in mehrere Frames aufteilen und sie am anderen Ende neu gruppieren.
- Schnellere Webleistungen, die folglich zu einem besseren SEO-Ranking führen.
- Verbesserte Sicherheit, da die meisten Mainstream-Browser HTTP/2 über HTTPS laden.
- HTTP/2 gilt dank der Header-Komprimierungsfunktion als mobilfreundlicher.
Allerdings werden wir HTTP/2 aktivieren auf Apache auf Ubuntu 20.04 LTS und Ubuntu 18.04 LTS .
Voraussetzungen:
Stellen Sie vor Beginn sicher, dass Sie HTTPS aktivieren auf dem Apache-Webserver, bevor Sie HTTP/2 aktivieren . Dies liegt daran, dass alle gängigen Webbrowser HTTP/2 unterstützen über HTTPS . Ich habe einen Domainnamen, der auf eine Instanz auf Ubuntu 20.04 verweist auf dem Apache-Server ausgeführt wird, der mit dem Let’s Encrypt-Zertifikat gesichert ist.
Außerdem wird empfohlen, dass Sie Apache 2.4.26 haben und spätere Versionen für Produktionsserver, die eine Umstellung auf HTTP/2 vornehmen möchten .
Um die Version von Apache zu überprüfen Sie ausführen, führen Sie den Befehl aus:
$ apache2 -v
Überprüfen Sie die Apache-Version in Ubuntu
Aus der Ausgabe können Sie ersehen, dass wir die neueste Version verwenden, nämlich Apache 2.4.41 zum Zeitpunkt der Niederschrift dieses Artikels.
HTTP/2 auf einem virtuellen Apache-Host aktivieren
Bestätigen Sie zunächst, dass auf dem Webserver HTTP/1.1 ausgeführt wird . Sie können dies in einem Browser tun, indem Sie den Abschnitt mit den Entwicklertools in Google Chrome öffnen mit Ctrl +SHIFT + I
Kombination. Klicken Sie auf „Netzwerk“. “ und suchen Sie das „Protokoll ’-Spalte.
Bestätigen Sie die Version des HTTP-Protokolls
Aktivieren Sie als Nächstes HTTP/2 Modul auf Ubuntu indem Sie den folgenden Befehl ausführen.
$ sudo a2enmod http2
HTTP/2 auf Ubuntu aktivieren
Suchen und bearbeiten Sie als Nächstes Ihr SSL virtuelle Hostdatei, wenn Sie HTTPS mit Let’s Encrypt aktiviert haben , wird eine neue Datei mit einer le-ssl.conf erstellt Suffix.
$ sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf
Fügen Sie die folgende Direktive nach <VirtualHost *:443>
ein -Tag.
Protocols h2 http/1.1
HTTP/2 auf Apache aktivieren
Um die Änderungen zu speichern, starten Sie den Apache-Webserver neu.
$ sudo systemctl restart apache2
Um zu prüfen, ob HTTP/2 aktiviert ist, rufen Sie die HTTP-Header mit dem folgenden curl-Befehl als show.
ab$ curl -I --http2 -s https://domain.com/ | grep HTTP
Überprüfen Sie die HTTP/2-Unterstützung in Apache
Sie sollten die angezeigte Ausgabe erhalten.
HTTP/2 200
Laden Sie im Browser Ihre Website neu. Gehen Sie dann zurück zu den Entwicklertools und bestätigen Sie HTTP/2, das durch h2
gekennzeichnet ist Etikett auf dem 'Protokoll ’-Spalte.
Bestätigen Sie die HTTP/2-Protokollversion
Bei Verwendung des Moduls mod_php mit Apache
Wenn Sie Apache ausführen neben der mod_php Modul, müssen Sie zu PHP-FPM wechseln . Das liegt daran, dass die mod_php Modul verwendet das prefork MPM Modul, das von HTTP/2 nicht unterstützt wird . Sie müssen das prefork MPM deinstallieren und wechseln Sie zum mpm_event Modul, das von HTTP/2 unterstützt wird .
Wenn Sie PHP 7.4 mod_php verwenden Modul deaktivieren Sie es beispielsweise wie gezeigt:
$ sudo a2dismod php7.4
mod_php-Modul deaktivieren
Deaktivieren Sie danach das Prefork MPM Modul.
$ sudo a2dismod mpm_prefork
Deaktivieren Sie Prefork MPM in Apache
Nachdem Sie die Module deaktiviert haben, aktivieren Sie als Nächstes das Event MPM , Fast_CGI und setenvif Module wie abgebildet.
$ sudo a2enmod mpm_event proxy_fcgi setenvif
Ereignis-MPM in Apache aktivieren
Installieren Sie PHP-FPM auf Ubuntu
Als nächstes installieren und starten Sie PHP-FPM wie abgebildet.
$ sudo apt install php7.4-fpm $ sudo systemctl start php7.4-fpm
Aktivieren Sie dann PHP-FPM beim Booten starten.
$ sudo systemctl enable php7.4-fpm
Aktivieren Sie als Nächstes PHP-FPM als PHP-Handler von Apache und starten Sie den Apache-Webserver neu, damit die Änderungen wirksam werden.
$ sudo a2enconf php7.4-fpm
HTTP/2-Unterstützung in Apache Ubuntu aktivieren
Aktivieren Sie dann wie zuvor das HTTP/2-Modul.
$ sudo a2enmod http2
Starten Sie Apache neu, um alle Änderungen zu synchronisieren.
$ sudo systemctl restart apache2
Schließlich können Sie testen, ob Ihr Server HTTP/2 verwendet Protokoll mit dem Curl-Befehl wie gezeigt.
$ curl -I --http2 -s https://domain.com/ | grep HTTP
Überprüfen Sie das HTTP/2-Protokoll in Apache
Sie können sich auch dafür entscheiden, die Entwicklertools in Google Chrome zu verwenden Browser zu überprüfen, wie zuvor dokumentiert. Zum Ende dieses Leitfadens möchten wir hoffen, dass Sie die Informationen wertvoll fanden und dass Sie HTTP/2 bequem aktivieren können auf Apache mit Leichtigkeit.
Sharing is Caring…Auf Facebook teilenAuf Twitter teilenAuf Linkedin teilenAuf Reddit teilen