Apache2 veiktspējas optimizācija

Daudzi izmanto Apache2 kā tīmekļa serveri. Tomēr maz kas domā par tā veiktspējas optimizāciju, kas tieši ietekmē lapu ielādes ātrumu, skriptu (īpaši PHP) apstrādes ātrumu, kā arī palielina slodzi uz CPU un palielina izmantotās RAM apjomu.

Tādējādi nākamais rokasgrāmata jāpalīdz sākotnējiem (un ne tikai) lietotājiem.
Visi turpmāk norādītie piemēri tika izmantoti Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Tātad, sāksim.

1. Neizmantojamo moduļu atslēgšana

Pirmais veids ir vienkārši atslēgt moduļus, kurus neizmantojat:

Pašlaik izmantoto moduļu sarakstu var apskatīt ar komandu:

apache2ctl -M

Lai atslēgtu moduli, tiek izmantota komanda:

a2dismod *moduļa nosaukums*

Atbilstoši moduli var ieslēgt ar komandu:

a2enmod *moduļa nosaukums*

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

Piemēram, ja esat izvadē redzējis apache2ctl -M proxy_module , tad, lai to atslēgtu, jāizmanto komanda —a2dismod proxy Visbiežāk sistēmu noslogojošajiem moduļiem (pēc personīgās pieredzes) ir:

PHP, Ruby, Perl un citi moduļi dažādām skriptu valodām

  • Rewrite
  • SSL
  • CGI
  • Tātad gadījumos, kad šie moduļi jums nav nepieciešami, es ieteiktu atslēgt šos moduļus.

Arī pēc kāda moduļa atslēgšanas es iesaku izmantot komandu —

apache2ctl configtest , kas pārbaudīs izmantoto vietņu konfigurāciju un, ja kāds no atslēgtajiem moduļiem bija nepieciešams, izvadīs kļūdu.2. MPM (Multi-Processing Module) maiņa un php-fpm izmantošana

Noklusējumā, pēc uzstādīšanas, Apache2 izmanto MPM Prefork (1 pavediena uz 1 savienojumu), kas ievērojami samazina veiktspēju, bet uzlabo stabilitāti un drošību.

Tomēr, lai optimizētu veiktspēju, es iesaku izmantot MPM Worker, kas ļauj izmantot vairākus pavedienus vienam savienojumam.

Lai to aktivizētu, izmantojam šādas komandas:

a2dismod mpm_prefork \/\/Atslēdzam prefork a2dismod php7.3 \/\/Atslēdzam php moduli, kas ir atkarīgs no prefork a2enmod mpm_worker \/\/Ieslēdzam worker

Tomēr, izmantojot Worker, jūs varat saskarties ar problēmu, jo php7.3 modulis ir atkarīgs no Prefork moduļa.

Tomēr, izmantojot Worker, jūs varat saskarties ar problēmu, jo php7.3 modulis ir atkarīgs no Prefork moduļa.

Lai risinātu šo problēmu, instalēsim moduli php7.3-fpm, kas tiks izmantots PHP skriptu izpildei:

apt-get update && apt-get install php7.3-fpm  // Instalējam
systemctl enable php7.3-fpm && systemctl start php7.3-fpm  // Pievienojam automātiskajai palaišanai un palaižam
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf  // Ieslēdzam moduli un tā konfigurāciju

Jāatzīmē, ka php-fpm izmantošana arī samazinās apache2 procesam izmantotās RAM apjomu un nedaudz paātrinās PHP skriptu izpildi.

3. Nobeigums

Tādējādi ar šīm vienkāršajām darbībām mēs spējam optimizēt veiktspēju un samazināt slodzi uz mašīnu (šajā gadījumā RPI3).

Protams, ir simtiem citu optimizācijas iespēju, piemēram, saspiešanas ieslēgšana (kas tiešām noderīgi, bet lielākajā daļā gadījumu jau ir ieslēgta pēc noklusējuma), MPM parametru (konfigurācijas failu) maiņa, HostnameLookups atslēgšana utt., bet šajā rakstā es centos izcelt tieši tos punktus, kas visvairāk palīdzēja man, un ceru, ka palīdzēs arī citiem.

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster