GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So aktivieren Sie HTTP/2 im Apache-Webserver unter Ubuntu und Debian

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 Fokus des Protokolls liegt auf der Leistung; insbesondere die 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. Apache unterstützt HTTP/2 seit Version 2.4.17. In diesem Tutorial gehe ich davon aus, dass Sie bereits eine funktionierende TLS-Konfiguration haben und dass Sie die erforderliche Apache-Version auf Ihrer bevorzugten Linux-Distribution installiert haben und dass Sie wissen, wie man Let's Encrypt verwendet, oder Sie wissen, wie man es tut ein selbstsigniertes Zertifikat ausstellen.

Dieses Tutorial wurde auf Debian 10 getestet , Debian 9, Ubuntu 20.04 LTS, und Ubuntu 18.04 LTS.

Voraussetzungen

Um HTTP/2 in Apache zu aktivieren, müssen Sie die folgenden Anforderungen erfüllen:

  • Zunächst müssen Sie HTTPS auf Ihrem Server aktivieren. Alle gängigen Browser erlauben die Verwendung von HTTP/2 nur über HTTPS. Auch TLS  Protokollversion>=1.2 mit modernen Verschlüsselungssammlungen ist erforderlich.
  • Stellen Sie als Nächstes sicher, dass Sie Apache 2.4.17 ausführen oder höher, da HTTP/2 ab dieser Version unterstützt wird.
  • Vergewissern Sie sich außerdem, dass Ihr Client/Browser tatsächlich HTTP/2 unterstützt.

Modul mod_php deaktivieren

Bevor wir im nächsten Schritt das Apache MPM-Modul auf mpm_event umstellen können, müssen wir den alten mod_php-Modus deaktivieren und durch den moderneren PHP-FPM-Modus ersetzen. Die Befehle unterscheiden sich für jede Betriebssystemversion, bitte verwenden Sie die, die zu Ihrem installierten System passen.

Ubuntu 20.04 LTS

sudo apt-get install php7.4-fpm
sudo a2dismod php7.4
sudo a2enconf php7.4-fpm
sudo a2enmod proxy_fcgi

Debian 10

sudo apt-get install php7.3-fpm
sudo a2dismod php7.3
sudo a2enconf php7.3-fpm
sudo a2enmod proxy_fcgi

Ubuntu 18.04 LTS

sudo apt-get install php7.2-fpm
sudo a2dismod php7.2
sudo a2enconf php7.2-fpm
sudo a2enmod proxy_fcgi

Debian 9

sudo apt-get install php7.0-fpm
sudo a2dismod php7.0
sudo a2enconf php7.0-fpm
sudo a2enmod proxy_fcgi

Aktivieren Sie ein Apache MPM, das mit HTTP/2 kompatibel ist

Standardmäßig verwendet Apache das Prefork-MPM. Dieses MPM ist nicht mit HTTP/2 kompatibel, daher müssen wir es durch das modernere Modul mpm_event ersetzen.

Zuerst deaktivieren wir das Modul mpm_prefork:

sudo a2dismod mpm_prefork

Dann aktivieren wir das Modul mpm_event:

sudo a2enmod mpm_event

HTTP/2-Unterstützung in Apache aktivieren

Damit HTTP/2 auf Apache funktioniert, müssen Sie SSL- und HTTP/2-Module aktivieren und laden. Dazu können Sie Folgendes in Ihrem Terminal ausführen:

sudo a2enmod ssl

und dann

sudo a2enmod http2

Um diese neuen Module zu aktivieren, müssen Sie Folgendes ausführen:

sudo systemctl restart apache2

Nachdem Sie die erforderlichen Apache-Module aktiviert und geladen haben, navigieren Sie zu Ihrem Apache-Konfigurationsverzeichnis und bearbeiten Sie die Apache-Konfiguration.

Um HTTP/2 auf Ihrem Apache-Webserver zu aktivieren, fügen Sie eines der folgenden Elemente zu Ihrer globalen Apache-Konfiguration oder innerhalb eines bestimmten virtuellen Hosts hinzu.

Protocols h2 http/1.1

Hier ist die minimale virtuelle Serverkonfiguration, die verwendet werden kann, um HTTP/2 in einem virtuellen Host zu aktivieren:

<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/public_html/example.com
SSLEngine on
SSLCertificateKeyFile /path/to/private.pem
SSLCertificateFile /path/to/cert.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Protocols h2 http/1.1
</VirtualHost>

Um zu prüfen, ob Ihr Server HTTP/2 unterstützt, können Sie Ihre Browser-Entwicklungstools verwenden. Unten sind Screenshots von Google Chrome- und Apple Safari-Browsern zu sehen, die HTTP/2 in Aktion auf https://example.com zeigen Domäne.

Chrom

Safari

  • RFC 7540
  • HTTP/2

Ubuntu
  1. So entfernen Sie den Apache-Webserver von Ubuntu

  2. So installieren und konfigurieren Sie Nginx unter Ubuntu 18.04 / Debian 9

  3. Wie aktiviere ich mod_rewrite auf dem Ubuntu-Webserver?

  4. So installieren und konfigurieren Sie den Apache-Webserver unter Ubuntu 13.10

  5. So aktivieren Sie HTTP/2 in Nginx unter Ubuntu und CentOS

So installieren Sie den Apache-Webserver unter Ubuntu 20.04

So installieren und konfigurieren Sie Apache Spark unter Ubuntu/Debian

So aktivieren Sie HTTP/2 in Apache auf einem Linux-System

So fügen Sie PHP-FPM-Unterstützung auf Apache und Nginx-Webserver auf Ubuntu 18.04 hinzu

So installieren und konfigurieren Sie einen LAMP-Webserver unter Ubuntu 18.04

So aktivieren Sie HTTP/2 mit Apache in Ubuntu