Ich verstehe, dass Apache derzeit möglicherweise nicht die bevorzugte Wahl ist, um neue Projekte darauf zu starten. Es existiert jedoch, lebt weiter und die Projekte arbeiten daran. Die Wahl für ihn kann aus persönlichen Gründen, aufgrund von Kompatibilitätsanforderungen oder aus anderen Gründen fallen ... nicht der Punkt. In diesem Artikel möchte ich Schritt für Schritt beschreiben, wie die Unterstützung für das HTTP / 2-Protokoll auf dem Apache-Webserver konfiguriert wird, da ich es selbst verwende und in einem solchen Artikel
benötige , und ich hoffe, dass es auch für jemanden in der Praxis nützlich sein wird.
Was ist HTTP / 2? Wie der Name schon sagt, ist dies die zweite Version des HTTP-Protokolls. Sie können mehr über die Vorteile zumindest auf
Wikipedia lesen. Ich sage nur alleine, wenn Sie kein Shared Hosting hosten, ist die Unterstützung dieses Protokolls ein Muss, wie zum Beispiel HTTPS. Ja, damit HTTP / 2 für Sie funktioniert, benötigen Sie vollen Zugriff auf die Konsole des Computers (wenn auch virtuell) über ssh oder auf andere Weise sowie auf bereits konfiguriertes HTTPS (TLS / SSL). Kommen wir zur Sache.
Erster Schritt. Apache-Update
Das HTTP / 2-Protokoll wird vom Apache-Server ab Version 2.4.24 unterstützt. Wenn Sie also eine ältere Version installiert haben, ist es Zeit, diese zu aktualisieren. Aber zuerst überprüfen:
apache -v
Dieser Befehl erzeugt ungefähr Folgendes:
Server version: Apache/2.4.37 (Ubuntu) Server built: 2018-10-28T15:27:08
Die erste Zeile zeigt die Version des Servers. Wenn es größer oder gleich 2.4.24 ist, können wir sicher mit dem zweiten Schritt fortfahren. Andernfalls müssen Sie den Apache aktualisieren, dessen aktuelle Version Sie in der PPA des berühmten Entwicklers finden (falls Sie Debian / Ubuntu bereits etwas Neues hinzufügen mussten) - Ondřej Surý. PPAs sind persönliche Pakete, die nicht in den offiziellen Distributions-Repositories enthalten sind. Um sie zu verwenden, müssen Sie dem System zunächst beibringen, was und wo es erhältlich ist:
sudo add-apt-repository ppa:ondrej/apache2
Der Typ macht einen guten Job und es macht ihm nichts aus, einen kleinen Donut zu bekommen, was sehr deutlich wird, wenn man sich mit seinen Rüben verbindet ...
Außerdem aktualisieren wir die Pakete:
sudo apt update sudo apt upgrade
Und wieder überprüfen wir die Version von Apache. Wenn alles gut gegangen ist, wird Apache auf Ihrem Server installiert, auf dem Sie HTTP / 2 konfigurieren können. Wenn alles schief gelaufen ist - ich fürchte, das ist nicht das Thema dieses Artikels. Fahren Sie nun mit dem zweiten Schritt fort.
Schritt zwei Verwenden von FastCGI
Was ist FastCGI? Wie ich bereits sagte, ist es besser, zumindest auf
Wikipedia zu lesen, da Sie uns dies nicht kurz sagen können. Sie müssen zu PHP wechseln, das im FastCGI-Modus (php-fpm) ausgeführt wird. Wie es funktioniert - eine gute Antwort gibt es auf dem
Toaster . Hier werde ich nicht auf solche Nuancen eingehen, sondern sofort mit der Installation fortfahren:
sudo apt install php-fpm
Nach der Installation wird uns buchstäblich Folgendes mitgeteilt: Um PHP 7.2 FPM in Apache2 zu aktivieren, gehen Sie wie folgt vor:
sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.2-fpm
Wir machen es Danach müssen Sie mod_php deaktivieren, da Sie stattdessen php-fpm haben.
sudo a2dismod php7.2
Im Allgemeinen hatten Sie möglicherweise zuvor eine andere Version von PHP. Sie können sich die Module ansehen, die Sie im Verzeichnis
/ etc / apache2 / mods-available / installiert haben und die in
/ etc / apache2 / mods-enabled aktiv sindStarten Sie als Nächstes Apache neu
sudo service apache2 restart
und gehe zum dritten Schritt.
Schritt drei Wechsel von Prefork zu Event
Was ist MPM und was ist der Unterschied zwischen Prefork, Event, Worker? Sie können hier in
diesem wunderbaren Artikel lesen ... aber jetzt ist es wirklich wichtig, nur eines zu wissen: Die "Standard" -Vorgabel ist
nicht sehr kompatibel mit HTTP / 2, daher müssen Sie eine geeignetere verwenden . Schalten Sie einen aus, schalten Sie den anderen ein und starten Sie Apache neu.
sudo a2dismod mpm_prefork sudo a2enmod mpm_event service apache2 restart
Der vierte Schritt. Aktivieren Sie HTTP / 2
Entweder in der Host-Konfigurationsdatei, die sich im Verzeichnis
/ etc / apache2 / sites-enabled / befindet , oder in der Konfiguration des Servers
/etc/apache2/apache2.conf selbst sagen
wir , dass wir Unterstützung für das neue Protokoll benötigen:
Protocols h2 h2c http/1.1
Was wirklich zählt, ist
h2 . Zwei weitere Punkte liegen in Ihrem Ermessen.
h2c unterstützt HTTP / 2 über TCP (nicht TLS).
http / 1.1 - Unterstützung für die alte Version von HTTP.
Schalten Sie das http2-Modul ein und starten Sie den Server neu:
sudo a2enmod http2 service apache2 restart
Angekommen sind
Von nun an. Ihre Ressource sollte über HTTP / 2 arbeiten. Wenn Sie Chrome verwenden, indem Sie zur Ressource gehen, sehen Sie, wie der Blitz in der oberen rechten Ecke des Browsers blau leuchtet. Wenn Sie den Mauszeiger darüber halten, wird die Eingabeaufforderung HTTP / 2-enabled (h2) angezeigt. Wechseln Sie in Firefox zum Entwicklerfenster und aktivieren Sie auf der Registerkarte Netzwerk die Spalte Protokoll. Für Ressourcen von Ihrer Site sollte HTTP / 2.0 aufgeführt sein. Sie können auch überprüfen, ob Ihre Ressource dieses Protokoll auf
einer der vielen Websites im Web unterstützt. Aber entspann dich nicht, denn
HTTP / 3 ist schon auf den Fersen :)