Optimering av prestanda för apache2

MÄnga anvÀnder apache2 som webbserver. Men fÄ tÀnker pÄ att optimera dess prestanda, vilket direkt pÄverkar hastigheten pÄ webbplatsens laddning, hastigheten pÄ skriptbearbetning (specifikt php), samt ökningen av belastningen pÄ CPU och den anvÀnda mÀngden RAM.

DÀrför bör följande manual 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. StÀng av oanvÀnda moduler

Det första sÀttet Àr att helt enkelt stÀnga av de moduler som du inte anvÀnder:

Listan över aktuellt anvÀnda moduler kan ses med kommandot:

apache2ctl -M

För att stÀnga av en modul anvÀnds kommandot:

a2dismod *modulens namn*

Motsvarande för att aktivera en modul anvÀnds kommandot:

a2enmod *modulens namn*

Observera att nÀr du anvÀnder a2dismod, modulens namn mÄste skrivas utan ordet modul.

Till exempel, om du sett i utdata frĂ„n kommandot apache2ctl -M att du fick se proxy_module, sĂ„ mĂ„ste du anvĂ€nda kommandot för att stĂ€nga av den — a2dismod proxy

De mest resurskrÀvande modulerna (enligt min erfarenhet) Àr:

  • PHP, Ruby, Perl och andra moduler för olika skriptsprĂ„k
  • SSL
  • Rewrite
  • CGI

SÄ i de fall nÀr du inte behöver dessa moduler rekommenderar jag att stÀnga av dem.

Dessutom, efter att ha stĂ€ngt av en modul, rekommenderar jag att anvĂ€nda kommandot — apache2ctl configtest, som kontrollerar konfigurationen av de anvĂ€nda webbplatserna, och om nĂ„gon av de stĂ€ngda modulerna var nödvĂ€ndig för dem, kommer det att ge ett fel.

2. Byta MPM (Multi-Processing Module) och anvÀnda php-fpm

Som standard anvÀnder apache2 MPM Prefork (1 trÄd per 1 anslutning) efter installationen, vilket tydligt sÀnker prestandan, men förbÀttrar stabiliteten och sÀkerheten.

Men för att optimera prestandan rekommenderar jag att anvÀnda MPM Worker, som tillÄter anvÀndning av flera trÄdar per anslutning.

För att aktivera den anvÀnder vi följande kommandon:

a2dismod mpm_prefork  \/\/ StÀnger av prefork
a2dismod php7.3  \/\/ StÀnger av php-modulen som beror pÄ prefork
a2enmod mpm_worker  \/\/ Aktiverar worker

Men nÀr man 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 ska vi 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  // Installerar
systemctl enable php7.3-fpm && systemctl start php7.3-fpm  // LĂ€gger till i autostart och startar
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf  // Aktiverar modulen och konfigurationen för den

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 nÄgot snabba upp körningen av php-skript.

3. Slutsats

SÄledes kunde vi, med dessa enkla ÄtgÀrder, optimera prestanda och minska belastningen pÄ maskinen (i detta fall RPI3).

Naturligtvis finns det hundratals andra optimeringsalternativ, sÄsom att aktivera kompression (vilket verkligen Àr anvÀndbart men oftast Àr aktiverat som standard), Àndra parametrar (konfigurationsfiler) för MPM, inaktivera HostnameLookups etc., men i denna artikel har jag försökt att reflektera över just de punkter som har hjÀlpt mig mest, och jag hoppas att de ocksÄ kan hjÀlpa andra.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster