Apache2-Leistungsoptimierung

Viele Leute verwenden Apache2 als Webserver. Allerdings denken nur wenige Menschen darüber nach, die Leistung zu optimieren, was sich direkt proportional auf die Ladegeschwindigkeit der Seiten der Website, die Geschwindigkeit der Verarbeitung von Skripten (insbesondere PHP) sowie eine Erhöhung der CPU-Auslastung und eine Erhöhung des verwendeten RAM-Speichers auswirkt.

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

Итак, начнем.

1. Deaktivierung nicht verwendeter Module

Die erste Methode besteht darin, Module, die Sie nicht verwenden, einfach zu deaktivieren:

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

apache2ctl -M

Um das Modul zu deaktivieren, verwenden Sie den folgenden Befehl:

a2dismod *название модуля*

Um das Modul zu aktivieren, verwenden Sie dementsprechend den folgenden Befehl:

a2enmod *название модуля*

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

Zum Beispiel, wenn Sie sich in der Ausgabe des Befehls befinden apache2ctl -M gesehen haben Proxy_Module, dann müssen Sie zum Deaktivieren den Befehl verwenden: a2dismod-Proxy

Die Module, die das System (aus eigener Erfahrung) am meisten belasten, sind:

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

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

Außerdem empfehle ich nach dem Deaktivieren eines Moduls die Verwendung des Befehls - Apache2ctl-Konfigurationstest, das die Konfiguration der verwendeten Sites überprüft und einen Fehler generiert, wenn eines der deaktivierten Module für sie erforderlich war.

2. MPM (Multi-Processing Module) ändern und PHP-FPM verwenden

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

Um die Leistung zu optimieren, empfehle ich jedoch die Verwendung von MPM Worker, mit dem Sie mehrere Threads pro Verbindung verwenden können.

Um es zu aktivieren, verwenden wir die folgenden Befehle:

a2dismod mpm_prefork  //Отключаем prefork
a2dismod php7.3  //Отключаем модуль php, который зависит от prefork
a2enmod mpm_worker  //Включаем worker

Bei der Verwendung von Worker kann es jedoch zu Problemen kommen, weil ... Das PHP7.3-Modul hängt vom Prefork-Modul ab.

Um dieses Problem zu lösen, installieren wir das Modul php7.3-fpm, das zum Ausführen von PHP-Skripten verwendet wird:

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 vom Apache2-Prozess verwendete RAM-Menge reduziert und die Verarbeitung von PHP-Skripten geringfügig beschleunigt.

3. Заключение

Somit konnten wir mit solch einfachen Maßnahmen die Leistung optimieren und die Belastung der Maschine (in diesem Fall RPI3) reduzieren.

Natürlich gibt es Hunderte anderer Optimierungsoptionen, wie das Aktivieren der Komprimierung (was wirklich nützlich ist, aber die meisten sind bereits standardmäßig aktiviert), das Ändern der MPM-Einstellungen (Konfigurationsdateien), das Deaktivieren von HostnameLookups usw., aber in diesem Artikel habe ich es versucht reflektieren Das sind die Punkte, die mir am meisten geholfen haben, und ich hoffe, dass sie auch anderen helfen werden.

Source: habr.com

Kommentar hinzufügen