Apache2 prestandaoptimering

Många använder apache2 som en webbserver. Men få människor tänker på att optimera dess prestanda, vilket direkt proportionellt påverkar laddningshastigheten för webbplatssidor, hastigheten för bearbetning av skript (särskilt php), såväl som en ökning av CPU-belastningen och en ökning av mängden RAM som används.

Följande manual bör därför hjälpa nybörjare (och inte bara) användare.
Alla exempel nedan användes på Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Så, låt oss börja.

1. Inaktivera oanvända moduler

Den första metoden är att helt enkelt inaktivera moduler som du inte använder:

Listan över för närvarande använda moduler kan ses med kommandot:

apache2ctl -M

För att inaktivera modulen, använd kommandot:

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

Följaktligen, för att aktivera modulen, använd kommandot:

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

Observera att vid användning a2dismod, måste modulens namn skrivas utan själva ordet modulen.

Till exempel, om du är i utgången av kommandot apache2ctl -M fick syn på proxy_modul, sedan för att inaktivera det måste du använda kommandot - a2dismod proxy

De moduler som belastar systemet mest (av personlig erfarenhet) är:

  • PHP, Ruby, Perl och andra moduler för olika skriptspråk
  • SSL
  • Skriva om
  • CGI

Så i de fall du inte behöver dessa moduler rekommenderar jag att du inaktiverar dessa moduler.

Efter att ha inaktiverat någon modul rekommenderar jag att du använder kommandot - apache2ctl configtest, som kommer att kontrollera konfigurationen av webbplatserna som används och om någon av de inaktiverade modulerna var nödvändiga för dem, kommer det att generera ett fel.

2. Ändra MPM (Multi-Processing Module) och använda php-fpm

Som standard, efter installationen, använder apache2 MPM Prefork (1 tråd per 1 anslutning), vilket avsevärt minskar prestandan, men samtidigt förbättrar stabiliteten och säkerheten.

Men för att optimera prestandan rekommenderar jag att du använder MPM Worker, som gör att du kan använda flera trådar per anslutning.

För att aktivera det använder vi följande kommandon:

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

Men när du använder Worker kan du stöta på ett problem eftersom... php7.3-modulen beror på Prefork-modulen.

För att lösa detta problem, låt oss installera modulen php7.3-fpm, som kommer att användas för att köra PHP-skript:

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

Det är värt att notera att användningen av php-fpm också kommer att minska mängden RAM som används av apache2-processen och påskynda bearbetningen av PHP-skript något.

3. slutsats

Med så enkla åtgärder kunde vi således optimera prestanda och minska belastningen på maskinen (i detta fall RPI3).

Naturligtvis finns det hundratals andra optimeringsalternativ, som att aktivera komprimering (vilket är väldigt användbart, men de flesta är redan aktiverade som standard), ändra MPM-inställningar (konfigurationsfiler), inaktivera HostnameLookups, etc., men i den här artikeln försökte jag att reflektera Det här är de punkter som hjälpte mig mest, och jag hoppas kommer att hjälpa andra.

Källa: will.com

Lägg en kommentar