Apache2 prestatie-optimalisatie

Veel mensen gebruiken apache2 als webserver. Er zijn echter maar weinig mensen die nadenken over het optimaliseren van de prestaties, wat een directe proportionele invloed heeft op de laadsnelheid van sitepagina's, de snelheid van het verwerken van scripts (met name php), evenals een toename van de CPU-belasting en een toename van de hoeveelheid RAM die wordt gebruikt.

De volgende handleiding zou dus beginners (en niet alleen) gebruikers moeten helpen.
Alle onderstaande voorbeelden zijn gebruikt op Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Π˜Ρ‚Π°ΠΊ, Π½Π°Ρ‡Π½Π΅ΠΌ.

1. Ongebruikte modules uitschakelen

De eerste methode is om eenvoudigweg modules uit te schakelen die u niet gebruikt:

De lijst met momenteel gebruikte modules kan worden bekeken met het commando:

apache2ctl -M

Gebruik het commando om de module uit te schakelen:

a2dismod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля*

Gebruik daarom de opdracht om de module in te schakelen:

a2enmod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля*

Houd er rekening mee dat bij gebruik a2dismod, moet de naam van de module worden geschreven zonder het woord module zelf.

Als u zich bijvoorbeeld in de uitvoer van de opdracht bevindt apache2ctl-M zag proxy_module, en om het uit te schakelen, moet je de opdracht gebruiken - a2dismod-proxy

De modules die het systeem het meest belasten (uit persoonlijke ervaring) zijn:

  • PHP, Ruby, Perl en andere modules voor verschillende scripttalen
  • SSL
  • Herschrijven
  • CGI

Dus in gevallen waarin u deze modules niet nodig heeft, raad ik u aan deze modules uit te schakelen.

Ook raad ik aan om na het uitschakelen van een module de opdracht te gebruiken: apache2ctl configuratietest, waarmee de configuratie van de gebruikte sites wordt gecontroleerd en als een van de uitgeschakelde modules daarvoor nodig is, wordt er een fout gegenereerd.

2. MPM (Multi-Processing Module) wijzigen en php-fpm gebruiken

Standaard gebruikt apache2 na installatie MPM Prefork (1 thread per 1 verbinding), wat de prestaties aanzienlijk vermindert, maar tegelijkertijd de stabiliteit en veiligheid verbetert.

Maar om de prestaties te optimaliseren, raad ik aan MPM Worker te gebruiken, waarmee je meerdere threads per verbinding kunt gebruiken.

Om dit in te schakelen gebruiken we de volgende opdrachten:

a2dismod mpm_prefork  //ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ prefork
a2dismod php7.3  //ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ php, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ зависит ΠΎΡ‚ prefork
a2enmod mpm_worker  //Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ worker

Wanneer u Worker gebruikt, kunt u echter een probleem tegenkomen omdat... De php7.3-module is afhankelijk van de Prefork-module.

Om dit probleem op te lossen, installeren we de php7.3-fpm-module, die zal worden gebruikt om PHP-scripts uit te voeren:

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  //Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ для Π½Π΅Π³ΠΎ

Het is vermeldenswaard dat het gebruik van php-fpm ook de hoeveelheid RAM die door het apache2-proces wordt gebruikt zal verminderen en de verwerking van PHP-scripts enigszins zal versnellen.

3. conclusie

Met zulke eenvoudige acties konden we de prestaties optimaliseren en de belasting van de machine verminderen (in dit geval RPI3).

Natuurlijk zijn er honderden andere optimalisatieopties, zoals het inschakelen van compressie (wat erg handig is, maar de meeste zijn standaard al ingeschakeld), het wijzigen van MPM-instellingen (configuratiebestanden), het uitschakelen van HostnameLookups, enz., maar in dit artikel heb ik geprobeerd om reflecteren Dit zijn de punten die mij het meest hebben geholpen, en ik hoop dat dit ook anderen zal helpen.

Bron: www.habr.com

Voeg een reactie