Uboreshaji wa utendaji wa Apache2

Watu wengi hutumia apache2 kama seva ya wavuti. Walakini, watu wachache wanafikiria juu ya kuboresha utendaji wake, ambao huathiri moja kwa moja kasi ya upakiaji wa kurasa za tovuti, kasi ya maandishi ya usindikaji (haswa php), pamoja na ongezeko la mzigo wa CPU na ongezeko la kiasi cha RAM inayotumiwa.

Kwa hivyo, mwongozo ufuatao unapaswa kusaidia wanaoanza (na sio tu) watumiaji.
Mifano yote hapa chini ilitumika kwenye Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Kwa hiyo, hebu tuanze.

1. Kuzima moduli zisizotumiwa

Njia ya kwanza ni kuzima tu moduli ambazo hutumii:

Orodha ya moduli zinazotumiwa sasa zinaweza kutazamwa na amri:

apache2ctl -M

Ili kuzima moduli, tumia amri:

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

Ipasavyo, ili kuwezesha moduli, tumia amri:

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

Tafadhali kumbuka kuwa wakati wa kutumia a2dismod, jina la moduli lazima liandikwe bila moduli ya neno yenyewe.

Kwa mfano, ikiwa uko kwenye pato la amri apache2ctl -M saw moduli_ya_wakili, kisha kuizima unahitaji kutumia amri - wakala wa a2dismod

Moduli zinazopakia mfumo zaidi (kutoka kwa uzoefu wa kibinafsi) ni:

  • PHP, Ruby, Perl na moduli nyingine za lugha mbalimbali za uandishi
  • SSL
  • Rewrite
  • CGI

Kwa hivyo katika hali ambapo hauitaji moduli hizi, ninapendekeza kuzima moduli hizi.

Pia, baada ya kuzima moduli yoyote, ninapendekeza kutumia amri - usanidi wa apache2ctl, ambayo itaangalia usanidi wa tovuti zilizotumiwa na ikiwa moduli yoyote ya walemavu ilikuwa muhimu kwao, itazalisha hitilafu.

2. Kubadilisha MPM (Moduli ya Uchakataji Nyingi) na kutumia php-fpm

Kwa chaguo-msingi, baada ya ufungaji, apache2 hutumia MPM Prefork ( thread 1 kwa uunganisho 1), ambayo inapunguza kwa kiasi kikubwa utendaji, lakini wakati huo huo inaboresha utulivu na usalama.

Lakini ili kuboresha utendaji, napendekeza kutumia Mfanyakazi wa MPM, ambayo hukuruhusu kutumia nyuzi nyingi kwa unganisho.

Ili kuiwezesha tunatumia amri zifuatazo:

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

Walakini, unapotumia Worker unaweza kupata shida kwa sababu ... Moduli ya php7.3 inategemea moduli ya Prefork.

Ili kutatua tatizo hili, hebu tusakinishe moduli ya php7.3-fpm, ambayo itatumika kuendesha hati za PHP:

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

Inafaa kumbuka kuwa kutumia php-fpm pia itapunguza kiwango cha RAM kinachotumiwa na mchakato wa apache2 na kuongeza kasi kidogo ya usindikaji wa maandishi ya PHP.

3. Hitimisho

Kwa hivyo, kwa vitendo vile rahisi tuliweza kuongeza utendaji na kupunguza mzigo kwenye mashine (katika kesi hii RPI3).

Kwa kweli, kuna mamia ya chaguzi zingine za uboreshaji, kama kuwezesha ukandamizaji (ambayo ni muhimu sana, lakini nyingi tayari zimewezeshwa na chaguo-msingi), kubadilisha mipangilio ya MPM (faili za usanidi), kuzima HostnameLookups, nk, lakini katika nakala hii nilijaribu tafakari Haya ndiyo mambo yaliyonisaidia zaidi, na ninatumai yatasaidia wengine.

Chanzo: mapenzi.com

Kuongeza maoni