Apache2 errendimenduaren optimizazioa

Jende askok apache2 erabiltzen du web zerbitzari gisa. Hala ere, jende gutxik pentsatzen du bere errendimendua optimizatzea, eta horrek zuzenean eragiten dio guneko orrialdeen karga-abiadurari, script-ak prozesatzeko abiadurari (batez ere php), baita PUZaren karga areagotzeari eta erabilitako RAM kopurua handitzeari ere.

Horrela, hurrengo eskuliburuak erabiltzaile hasiberriei (eta ez bakarrik) lagundu behar die.
Beheko adibide guztiak Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3-n erabili ziren.

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

1. Erabili gabeko moduluak desgaitzea

Lehenengo metodoa erabiltzen ez dituzun moduluak desgaitzea da:

Une honetan erabiltzen diren moduluen zerrenda komandoarekin ikus daiteke:

apache2ctl -M

Modulua desgaitzeko, erabili komandoa:

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

Horren arabera, modulua gaitzeko, erabili komandoa:

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

Kontuan izan erabiltzean a2dismod, moduluaren izena modulu hitzik bera gabe idatzi behar da.

Adibidez, komandoaren irteeran bazaude apache2ctl -M ikusi proxy_modulua, orduan desgaitzeko komandoa erabili behar duzu - a2dismod proxy

Sistema gehien kargatzen duten moduluak (esperientzia pertsonaletik) hauek dira:

  • PHP, Ruby, Perl eta beste hainbat modulu scripting hizkuntzatarako
  • SSL
  • berridazketa
  • CGI

Beraz, modulu hauek behar ez dituzun kasuetan, modulu hauek desgaitzea gomendatzen dut.

Gainera, edozein modulu desgaitu ondoren, komandoa erabiltzea gomendatzen dut - apache2ctl konfigurazioa, erabilitako guneen konfigurazioa egiaztatuko duena eta haietarako desgaitutako moduluren bat beharrezkoa balitz, errore bat sortuko du.

2. MPM (Multi-Processing Module) aldatu eta php-fpm erabiliz

Lehenespenez, instalatu ondoren, apache2-k MPM Prefork erabiltzen du (1 hari 1 konexio bakoitzeko), eta horrek errendimendua nabarmen murrizten du, baina, aldi berean, egonkortasuna eta segurtasuna hobetzen ditu.

Baina errendimendua optimizatzeko, MPM Worker erabiltzea gomendatzen dut, konexio bakoitzeko hainbat hari erabiltzeko aukera ematen duena.

Gaitzeko komando hauek erabiltzen ditugu:

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

Hala ere, Worker erabiltzean arazoren bat aurki dezakezu, zeren... php7.3 modulua Prefork moduluaren araberakoa da.

Arazo hau konpontzeko, instala dezagun PHP scriptak exekutatzeko erabiliko den php7.3-fpm modulua:

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

Aipatzekoa da php-fpm erabiltzeak apache2 prozesuak erabiltzen duen RAM kopurua murriztuko duela eta PHP scripten prozesamendua pixka bat bizkortuko duela.

3. Ondorioa

Horrela, horrelako ekintza sinpleekin errendimendua optimizatu eta makinaren karga murriztea lortu genuen (kasu honetan RPI3).

Jakina, beste ehunka optimizazio aukera daude, hala nola konpresioa gaitzea (oso erabilgarria da, baina gehienak lehenespenez gaituta daude), MPM ezarpenak aldatzea (konfigurazio fitxategiak), HostnameLookups desgaitzea, etab., baina artikulu honetan saiatu naiz. hausnartu Hauek dira gehien lagundu didaten puntuak, eta espero dut besteei laguntzea.

Iturria: www.habr.com

Gehitu iruzkin berria