ottimizzazzjoni tal-prestazzjoni Apache2

Ħafna nies jużaw apache2 bħala web server. Madankollu, ftit nies jaħsbu dwar l-ottimizzazzjoni tal-prestazzjoni tiegħu, li direttament taffettwa proporzjonalment il-veloċità tat-tagħbija tal-paġni tas-sit, il-veloċità tal-ipproċessar tal-iskripts (b'mod partikolari php), kif ukoll żieda fit-tagħbija tas-CPU u żieda fl-ammont ta 'RAM użat.

Għalhekk, il-manwal li ġej għandu jgħin lill-utenti li jibdew (u mhux biss).
L-eżempji kollha hawn taħt intużaw fuq Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Итак, начнем.

1. Inkontabilità moduli mhux użati

L-ewwel metodu huwa li sempliċement tiddiżattiva moduli li ma tużax:

Il-lista tal-moduli użati bħalissa tista' tara bil-kmand:

apache2ctl -M

Biex tiddiżattiva l-modulu, uża l-kmand:

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

Għaldaqstant, biex tippermetti l-modulu, uża l-kmand:

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

Jekk jogħġbok innota li meta tuża a2dismod, l-isem tal-modulu għandu jinkiteb mingħajr il-kelma modulu innifsu.

Per eżempju, jekk inti fl-output tal-kmand apache2ctl -M serrieq proxy_module, imbagħad biex tiddiżattivaha trid tuża l-kmand - prokura a2dismod

Il-moduli li jgħabbu l-aktar is-sistema (mill-esperjenza personali) huma:

  • PHP, Ruby, Perl u moduli oħra għal diversi lingwi tal-kitba
  • SSL
  • Ikteb mill-ġdid
  • CGI

Allura f'każijiet fejn m'għandekx bżonn dawn il-moduli, nirrakkomanda li tiddiżattiva dawn il-moduli.

Ukoll, wara li tiddiżattiva kwalunkwe modulu, nirrakkomanda li tuża l-kmand - apache2ctl configtest, li se jiċċekkja l-konfigurazzjoni tas-siti użati u jekk xi wieħed mill-moduli b'diżabilità kien meħtieġ għalihom, se jiġġenera żball.

2. Nibdlu MPM (Multi-Processing Module) u tuża php-fpm

B'mod awtomatiku, wara l-installazzjoni, apache2 juża MPM Prefork (ħajt 1 għal kull konnessjoni 1), li jnaqqas b'mod sinifikanti l-prestazzjoni, iżda fl-istess ħin itejjeb l-istabbiltà u s-sigurtà.

Iżda biex tottimizza l-prestazzjoni, nirrakkomanda li tuża MPM Worker, li jippermettilek tuża ħjut multipli għal kull konnessjoni.

Biex nippermettuha nużaw il-kmandi li ġejjin:

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

Madankollu, meta tuża Worker tista' tiltaqa' ma' problema minħabba li... Il-modulu php7.3 jiddependi fuq il-modulu Prefork.

Biex issolvi din il-problema, ejja ninstallaw il-modulu php7.3-fpm, li se jintuża biex iħaddem skripts 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  //Включаем модуль и конфиг для него

Ta 'min jinnota li l-użu ta' php-fpm se jnaqqas ukoll l-ammont ta 'RAM użat mill-proċess apache2 u jħaffef xi ftit l-ipproċessar ta' skripts PHP.

3. Konklużjoni

Għalhekk, b'azzjonijiet sempliċi bħal dawn stajna nottimizzaw il-prestazzjoni u nnaqqsu t-tagħbija fuq il-magna (f'dan il-każ RPI3).

Naturalment, hemm mijiet ta 'għażliet oħra ta' ottimizzazzjoni, bħall-abilitazzjoni tal-kompressjoni (li hija verament utli, iżda l-biċċa l-kbira huma diġà attivati ​​b'mod awtomatiku), il-bdil tas-settings tal-MPM (fajls ta 'konfigurazzjoni), id-diżattivazzjoni ta' HostnameLookups, eċċ., iżda f'dan l-artikolu ppruvajt jirrifletti Dawn huma l-punti li għenuni l-aktar, u nittama li se jgħinu lil ħaddieħor.

Sors: www.habr.com

Żid kumment