apache2 veiktspējas optimizācija

Daudzi cilvēki izmanto apache2 kā savu tīmekļa serveri. Tomēr daži cilvēki domā par tā veiktspējas optimizēšanu, kas tieši ietekmē vietnes lapas ielādes ātrumu, skriptu (īpaši php) apstrādes ātrumu, kā arī CPU slodzes palielināšanos un izmantotās RAM apjoma palielināšanos.

Tādējādi šai rokasgrāmatai vajadzētu palīdzēt iesācējiem (un ne tikai) lietotājiem.
Visi tālāk minētie piemēri tika izmantoti operētājsistēmās Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Tātad, pieņemsim sākt.

1. Nelietoto moduļu atspējošana

Pirmā metode ir vienkārši atspējot moduļus, kurus neizmantojat:

Šobrīd izmantoto moduļu sarakstu var apskatīt ar komandu:

apache2ctl -M

Lai atspējotu moduli, izmantojiet komandu:

a2dismod *название модуля*

Attiecīgi, lai iespējotu moduli, tiek izmantota komanda:

a2enmod *название модуля*

Lūdzu, ņemiet vērā, ka, lietojot a2dismod, moduļa nosaukums jāraksta bez paša vārda modulis.

Piemēram, ja atrodaties komandas izvadē apache2ctl -M redzēju starpniekservera_modulis, lai to atspējotu, jums jāizmanto komanda - a2dismod starpniekserveris

Moduļi, kas visvairāk ielādē sistēmu (pēc personīgās pieredzes), ir:

  • PHP, Ruby, Perl un citi moduļi dažādām skriptu valodām
  • SSL
  • Rerīts
  • CGI

Tāpēc gadījumos, kad šie moduļi nav nepieciešami, iesaku šos moduļus atspējot.

Tāpat pēc jebkura moduļa atspējošanas iesaku izmantot komandu − apache2ctl konfigurācijas tests, kas pārbaudīs izmantoto vietņu konfigurāciju un, ja tām bija nepieciešams kāds no atspējotajiem moduļiem, tas parādīs kļūdu.

2. Mainiet MPM (Multi-Processing Module) un izmantojiet php-fpm

Pēc noklusējuma apache2 pēc instalēšanas izmanto MPM Prefork (1 pavediens uz 1 savienojumu), kas ievērojami samazina veiktspēju, bet uzlabo stabilitāti un drošību.

Bet, lai optimizētu veiktspēju, es iesaku izmantot MPM Worker, kas vienā savienojumā ļauj vienlaikus izmantot vairākus pavedienus.

Lai to iespējotu, izmantojiet šādas komandas:

a2dismod mpm_prefork  //Отключаем prefork
a2dismod php7.3  //Отключаем модуль php, который зависит от prefork
a2enmod mpm_worker  //Включаем worker

Tomēr, izmantojot Worker, var rasties problēma, jo php7.3 modulis ir atkarīgs no Prefork moduļa.

Lai atrisinātu šo problēmu, instalējiet php7.3-fpm moduli, kas tiks izmantots php skriptu apstrādei:

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  //Включаем модуль и конфиг для него

Ir vērts atzīmēt, ka php-fpm izmantošana samazinās arī apache2 procesa izmantotās RAM apjomu un nedaudz paātrinās php skriptu apstrādi.

3. Secinājums

Tādējādi ar tik vienkāršām darbībām mēs varējām optimizēt veiktspēju un samazināt iekārtas slodzi (šajā gadījumā RPI3).

Protams, ir arī simtiem citu optimizācijas iespēju, piemēram, iespējot kompresiju (kas tiešām ir noderīgi, bet lielākā daļa jau ir iespējota pēc noklusējuma), mainīt MPM parametrus (konfigurācijas failus), atspējot HostnameLookups utt., bet Šajā rakstā es centos atspoguļot tos punktus, kas man ir palīdzējuši visvairāk, un, cerams, noderēs arī citiem.

Avots: www.habr.com

Pievieno komentāru