Apache2-prestasieoptimalisering

Baie mense gebruik apache2 as 'n webbediener. Min mense dink egter daaraan om die werkverrigting daarvan te optimaliseer, wat die laaispoed van werfbladsye direk proporsioneel beïnvloed, die spoed van verwerking van skrifte (veral php), sowel as 'n toename in SVE-lading en 'n toename in die hoeveelheid RAM wat gebruik word.

Die volgende handleiding behoort dus beginners (en nie net) gebruikers te help.
Alle voorbeelde hieronder is gebruik op Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Dus, kom ons begin.

1. Deaktiveer ongebruikte modules

Die eerste metode is om modules wat jy nie gebruik nie eenvoudig uit te skakel:

Die lys van tans gebruikte modules kan bekyk word met die opdrag:

apache2ctl -M

Om die module te deaktiveer, gebruik die opdrag:

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

Gevolglik, om die module te aktiveer, gebruik die opdrag:

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

Neem asseblief kennis dat wanneer u gebruik a2 dismod, moet die naam van die module sonder die woordmodule self geskryf word.

Byvoorbeeld, as jy in die uitvoer van die opdrag is apache2ctl -M gesien het proxy_module, dan moet jy die opdrag gebruik om dit te deaktiveer - a2dismod proxy

Die modules wat die stelsel die meeste laai (uit persoonlike ervaring) is:

  • PHP, Ruby, Perl en ander modules vir verskeie skriftale
  • SSL
  • Herskryf
  • CGI

So in gevalle waar jy nie hierdie modules nodig het nie, beveel ek aan dat jy hierdie modules deaktiveer.

Ook, nadat u enige module gedeaktiveer het, beveel ek aan om die opdrag - apache2ctl configtest, wat die opstelling van die werwe wat gebruik word, sal nagaan en as enige van die gedeaktiveerde modules daarvoor nodig was, sal dit 'n fout genereer.

2. Verander MPM (Multi-Processing Module) en gebruik php-fpm

By verstek, na installasie, gebruik apache2 MPM Prefork (1 draad per 1 verbinding), wat prestasie aansienlik verminder, maar terselfdertyd stabiliteit en sekuriteit verbeter.

Maar om werkverrigting te optimaliseer, beveel ek aan om MPM Worker te gebruik, wat jou toelaat om verskeie drade per verbinding te gebruik.

Om dit te aktiveer gebruik ons ​​die volgende opdragte:

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

Wanneer u Worker gebruik, kan u egter 'n probleem ondervind omdat... Die php7.3-module hang af van die Prefork-module.

Om hierdie probleem op te los, kom ons installeer die php7.3-fpm-module, wat gebruik sal word om PHP-skrifte uit te voer:

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

Dit is opmerklik dat die gebruik van php-fpm ook die hoeveelheid RAM wat deur die apache2-proses gebruik word, sal verminder en die verwerking van PHP-skrifte effens sal versnel.

3. gevolgtrekking

Dus, met sulke eenvoudige aksies was ons in staat om werkverrigting te optimaliseer en die las op die masjien te verminder (in hierdie geval RPI3).

Natuurlik is daar honderde ander optimeringsopsies, soos die aktivering van kompressie (wat regtig nuttig is, maar die meeste is reeds by verstek geaktiveer), die verandering van MPM-instellings (konfigurasielêers), deaktiveer HostnameLookups, ens., maar in hierdie artikel het ek probeer om reflekteer Dit is die punte wat my die meeste gehelp het, en ek hoop dat dit ander sal help.

Bron: will.com

Voeg 'n opmerking