Apache2 Leeschtung Optimisatioun

Vill Leit benotzen Apache2 als Webserver. Wéi och ëmmer, wéineg Leit denken iwwer seng Leeschtung ze optimiséieren, wat direkt proportional d'Laaschtgeschwindegkeet vun de Site Säiten, d'Geschwindegkeet vun der Veraarbechtung vu Scripten (besonnesch php) beaflosst, wéi och eng Erhéijung vun der CPU Belaaschtung an eng Erhéijung vun der Quantitéit vum RAM benotzt.

Also, déi folgend Handbuch soll Ufänger (an net nëmmen) Benotzer hëllefen.
All Beispiller hei drënner goufen op Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3 benotzt.

Also, looss eis un.

1. Onbenotzt Moduler auszeschalten

Déi éischt Method ass einfach Moduler auszeschalten déi Dir net benotzt:

D'Lëscht vun de momentan benotzte Moduler kann mam Kommando gekuckt ginn:

apache2ctl -M

Fir de Modul auszeschalten, benotzt de Kommando:

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

Deementspriechend, fir de Modul z'aktivéieren, benotzt de Kommando:

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

Maacht weg datt wann Dir benotzt a2 dismod, den Numm vum Modul muss ouni d'Wuertmodul selwer geschriwwe ginn.

Zum Beispill, wann Dir an der Ausgab vum Kommando sidd apache2ctl -M hu gesinn proxy_modul, dann fir et auszeschalten musst Dir de Kommando benotzen - a2dismod Proxy

D'Moduler déi de System am meeschte lueden (aus perséinlecher Erfahrung) sinn:

  • PHP, Ruby, Perl an aner Moduler fir verschidde Skriptsproochen
  • SSL
  • Umellen
  • CGI

Also a Fäll wou Dir dës Moduler net braucht, ech recommandéieren dës Moduler auszeschalten.

Och, nodeems Dir all Modul auszeschalten, empfeelen ech de Kommando ze benotzen - apache2ctl configtest, déi d'Konfiguratioun vun de benotzte Site iwwerpréift a wann ee vun de behënnerte Moduler fir si néideg war, generéiert e Feeler.

2. Änneren MPM (Multi-Veraarbechtung Modul) a benotzt php-fpm

Par défaut, no der Installatioun, benotzt apache2 MPM Prefork (1 Fuedem pro 1 Verbindung), wat d'Performance wesentlech reduzéiert, awer gläichzäiteg d'Stabilitéit a Sécherheet verbessert.

Awer fir d'Performance ze optimiséieren, recommandéieren ech MPM Worker ze benotzen, wat Iech erlaabt verschidde Threads pro Verbindung ze benotzen.

Fir et z'aktivéieren benotze mir déi folgend Kommandoen:

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

Wéi och ëmmer, wann Dir Worker benotzt, kënnt Dir e Problem begéinen well ... De php7.3 Modul hänkt vum Prefork Modul of.

Fir dëse Problem ze léisen, loosst eis de php7.3-fpm Modul installéieren, dee benotzt gëtt fir PHP Scripten auszeféieren:

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  //Включаем модуль и конфиг для него

Et ass derwäert ze notéieren datt d'Benotzung vu php-fpm och d'Quantitéit vum RAM reduzéiert deen den Apache2 Prozess benotzt an d'Veraarbechtung vu PHP Scripten liicht beschleunegt.

3. Konklusioun

Also, mat esou einfachen Aktiounen konnten mir d'Performance optimiséieren an d'Laascht op der Maschinn reduzéieren (an dësem Fall RPI3).

Natierlech ginn et Honnerte vun aneren Optimisatiounsoptiounen, wéi d'Kompressioun z'aktivéieren (wat wierklech nëtzlech ass, awer déi meescht si scho par défaut aktivéiert), MPM-Astellunge änneren (Konfiguratiounsdateien), HostnameLookups auszeschalten, etc., awer an dësem Artikel hunn ech probéiert reflektéieren Dëst sinn d'Punkten déi mir am meeschte gehollef hunn, an ech hoffen anerer hëllefen.

Source: will.com

Setzt e Commentaire