Ħ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