Apache2 performance optimization

Vanhu vazhinji vanoshandisa apache2 sewebhu server. Zvisinei, vanhu vashomanana vanofunga nezvekugadzirisa kushanda kwayo, iyo inobata zvakananga kukurumidza kurodha kwemapeji epaiti, kukurumidza kwekugadzirisa zvinyorwa (kunyanya php), pamwe nekuwedzera kweCPU mutoro uye kuwedzera kwehuwandu hwe RAM inoshandiswa.

Nokudaro, bhuku rinotevera rinofanira kubatsira vanotanga (uye kwete chete) vashandisi.
Mienzaniso yese iri pazasi yakashandiswa paRaspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Saka, ngatitangei kutanga.

1. Kudzima mamodule asina kushandiswa

Nzira yekutanga ndeyekungodzima mamodule ausingashandisi:

Rondedzero yemamodule anoshandiswa parizvino inogona kutariswa nemurairo:

apache2ctl -M

Kudzima module, shandisa murairo:

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

Saizvozvo, kugonesa module, shandisa murairo:

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

Ndapota cherechedza kuti paunenge uchishandisa a2dismod, zita reiyo module rinofanira kunyorwa pasina izwi module pacharo.

Semuenzaniso, kana iwe uri mukubuda kwemirairo apache2ctl -M wakaona proxy_module, wobva waidzima unofanirwa kushandisa murairo - a2dismod proxy

Iwo mamodule anoremedza sisitimu zvakanyanya (kubva pane ruzivo rwemunhu) ndeaya:

  • PHP, Ruby, Perl uye mamwe mamodule emitauro yakasiyana-siyana yekunyora
  • SSL
  • Nyora zvekare
  • CGI

Saka mune zviitiko zvausingade aya mamodule, ini ndinokurudzira kudzima aya mamodule.

Zvakare, mushure mekudzima chero module, ini ndinokurudzira kushandisa iwo murairo - apache2ctl configtest, iyo inotarisa kugadziridzwa kwemasayiti anoshandiswa uye kana imwe yemamodule akaremara aidiwa kwavari, inoburitsa kukanganisa.

2. Kuchinja MPM (Multi-Processing Module) uye kushandisa php-fpm

Nekusagadzikana, mushure mekuiswa, apache2 inoshandisa MPM Prefork (1 shinda pa1 kubatana), iyo inoderedza zvakanyanya kuita, asi panguva imwechete inovandudza kugadzikana uye kuchengeteka.

Asi kuti uwedzere kuita, ini ndinokurudzira kushandisa MPM Worker, iyo inobvumidza iwe kushandisa akawanda tambo pakubatanidza.

Kuigonesa tinoshandisa mirairo inotevera:

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

Nekudaro, kana uchishandisa Worker unogona kusangana nedambudziko nekuti... Iyo php7.3 module inotsamira pane iyo Prefork module.

Kugadzirisa dambudziko iri, ngatiisei php7.3-fpm module, iyo ichashandiswa kumhanyisa PHP zvinyorwa:

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

Zvakakosha kucherechedza kuti kushandisa php-fpm kunoderedzawo huwandu hwe RAM hunoshandiswa neapache2 maitiro uye zvishoma kumhanyisa kugadziridzwa kweiyo PHP zvinyorwa.

3. Mhedziso

Saka, nemaitiro akareruka akadaro takakwanisa kukwidziridza kuita uye kuderedza mutoro pamushini (munyaya iyi RPI3).

Ehe, kune mazana edzimwe sarudzo dzekugadzirisa, sekugonesa compression (iyo inobatsira chaizvo, asi yakawanda yakagoneswa neyakagadzika), kushandura MPM marongero (mafaira ekugadzirisa), kudzima HostnameLookups, nezvimwewo, asi mune ino chinyorwa ndakaedza fungisisa Aya ndiwo akandibatsira zvakanyanya, uye ndinovimba achabatsira vamwe.

Source: www.habr.com

Voeg