Leistungsoptimierung apache2

Viele verwenden Apache2 als Webserver. Nur wenige Menschen denken jedoch über eine Optimierung der Leistung nach, die sich direkt auf die Geschwindigkeit des Ladens von Seiten auf der Site, die Verarbeitungsgeschwindigkeit von Skripten (insbesondere PHP) sowie die Zunahme der CPU-Auslastung und die Zunahme des verwendeten RAM auswirkt.

Daher sollte das folgende Handbuch Anfängern (und nicht nur) Benutzern helfen.
Alle folgenden Beispiele wurden für Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3 verwendet.

Also fangen wir an.

1. Deaktivieren Sie nicht verwendete Module


Die erste Methode ist das banale Deaktivieren von Modulen, die Sie nicht verwenden:

Die Liste der aktuell verwendeten Module kann mit dem folgenden Befehl angezeigt werden:

apache2ctl -M 

Verwenden Sie den folgenden Befehl, um das Modul zu deaktivieren:

 a2dismod * * 

Verwenden Sie zum Aktivieren des Moduls den folgenden Befehl:

 a2enmod * * 

Bitte beachten Sie, dass bei Verwendung von a2dismod der Name des Moduls ohne das Wort Modul selbst geschrieben werden muss.

Wenn Sie beispielsweise proxy_module in der Ausgabe des Befehls apache2ctl -M gesehen haben , verwenden Sie zum Deaktivieren den Befehl - a2dismod proxy

Die meisten Systeme zum Laden von Systemen (aus persönlicher Erfahrung) sind:

  • PHP, Ruby, Perl und andere Module für verschiedene Skriptsprachen
  • SSL
  • Umschreiben
  • Cgi

In den Fällen, in denen Sie diese Module nicht benötigen, empfehle ich, diese Module zu deaktivieren.

Nach dem Deaktivieren eines Moduls empfehle ich außerdem die Verwendung des Befehls - apache2ctl configtest , mit dem die Konfiguration der verwendeten Sites überprüft wird. Wenn eines der deaktivierten Module für sie erforderlich ist, wird ein Fehler ausgegeben .

2. Ändern Sie MPM (Multi-Processing Module) und verwenden Sie php-fpm


Standardmäßig verwendet apache2 nach der Installation MPM Prefork (1 Thread pro 1 Verbindung), wodurch die Leistung erheblich reduziert wird, gleichzeitig aber Stabilität und Sicherheit verbessert werden.

Um die Leistung zu optimieren, empfehle ich die Verwendung von MPM Worker, mit dem Sie mehrere Threads gleichzeitig für eine Verbindung verwenden können.

Verwenden Sie zum Aktivieren die folgenden Befehle:

 a2dismod mpm_prefork // prefork a2dismod php7.3 //  php,    prefork a2enmod mpm_worker // worker 

Bei Verwendung von Worker kann jedoch ein Problem auftreten, weil Das php7.3-Modul hängt vom Prefork-Modul ab.

Um dieses Problem zu lösen, installieren Sie das Modul php7.3-fpm, mit dem PHP-Skripte erstellt werden:

 apt-get update && apt-get install php7.3-fpm // systemctl enable php7.3-fpm && systemctl start php7.3-fpm //     a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf //      

Es ist erwähnenswert, dass die Verwendung von php-fpm auch die Menge an RAM reduziert, die vom Apache2-Prozess verwendet wird, und die Verarbeitung von PHP-Skripten leicht beschleunigt.

3. Fazit


Mit diesen einfachen Aktionen konnten wir die Leistung optimieren und die Belastung der Maschine (in diesem Fall RPI3) reduzieren.

Natürlich gibt es Hunderte anderer Optimierungsoptionen, z. B. das Aktivieren der Komprimierung (was sehr nützlich ist, aber zum größten Teil bereits standardmäßig aktiviert ist), das Ändern von MPM-Parametern (Konfigurationsdateien), das Deaktivieren von HostnameLookups usw., aber in diesem Artikel habe ich versucht, dies zu reflektieren Das sind die Punkte, die mir am meisten geholfen haben, und ich hoffe, dass sie anderen helfen werden.

Source: https://habr.com/ru/post/de444732/


All Articles