Paljud kasutavad apache2 veebiserverina. Siiski mõtleb vähesed selle jõudluse optimeerimisele, mis mõjutab otse veebilehtede laadimiskiirust, skriptide (eriti php) töötlemise kiirusest ning koormuse kasvu CPU-le ja suurenevat RAM-i kasutamist.
Seega peaks järgmine juhend aitama algajaid (ja mitte ainult) kasutajaid.
Kõiki alljärgnevaid näiteid kasutati Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3 peal.
Nii et alustame.
1. Kasutamata moodulite keelamine
Esimene meetod on lihtne moodulite keelamine, mida te ei kasuta:
Praegu kasutatavate moodulite nimekirja saab vaadata käsuga:
apache2ctl -MMooduli keelamiseks kasutatakse käsku:
a2dismod *mooduli nimi*Seega mooduli lubamiseks kasutatakse käsku:
a2enmod *mooduli nimi*Pange tähele, et kasutades a2dismod, tuleb mooduli nimi kirjutada ilma sõna moodul.
Näiteks, kui näete käsu väljundis apache2ctl -M mooduli proxy_module, siis selle keelamiseks tuleb kasutada käsku — a2dismod proxy
Süsteemi kõige suurema koormuse tekitavad moodulid (minu isikliku kogemuse põhjal) on:
- PHP, Ruby, Perl ja muud moodulid erinevate skriptide jaoks
- SSL
- Rewrite
- CGI
Seega, kui need moodulid pole teile vajalikud, soovitan need moodulid keelata.
Samuti, pärast mõne mooduli keelamist, soovitan kasutada käsku — apache2ctl configtest, mis kontrollib kasutatavate saidi konfiguratsiooni ja kui mõni keelatud moodul oli vajalik, annab see veateate.
2. MPM (Multi-Processing Module) muutmine ja php-fpm kasutamine
Vaikimisi, pärast installimist, kasutab apache2 MPM Prefork (1 protsess 1 ühenduse kohta), mis vähendab tuntavalt jõudlust, kuid parandab stabiilsust ja turvalisust.
Kuid jõudluse optimeerimiseks soovitan kasutada MPM Worker, mis võimaldab kasutada mitmeid protsesse ühe ühenduse korral.
Selle lubamiseks kasutame järgmisi käske:
a2dismod mpm_prefork \/\/Keelame prefork
a2dismod php7.3 \/\/Keelame php mooduli, mis sõltub preforkist
a2enmod mpm_worker \/\/Lubame worker
Kuid workerit kasutades võite kokku puutuda probleemiga, kuna moodul php7.3 sõltub moodulist Prefork.
Selle probleemi lahendamiseks installime php7.3-fpm mooduli, mida kasutatakse php-skriptide töötlemiseks:
apt-get update && apt-get install php7.3-fpm // Paigaldamine
systemctl enable php7.3-fpm && systemctl start php7.3-fpm // Lisame automaatsesse käivitamisse ja käivitame
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf // Lülitame mooduli ja selle konfiguratsiooni sisse
Tuleb märkida, et php-fpm kasutamine vähendab samuti apache2 protsessi kasutatavat RAM-i ning kiirendab php-skriptide töötlemist.
3. Kokkuvõte
Seega suudame nende lihtsate toimingutega optimeerida jõudlust ja vähendada koormust masinale (antud juhul RPI3).
Muidugi on sadu teisi optimeerimise võimalusi, näiteks kompressiooni lubamine (mis on tõeliselt kasulik, kuid enamasti on see juba vaikimisi sisse lülitatud), MPM konfiguratsioonifailide parameetrite muutmine, HostnameLookups'i väljalülitamine jne, kuid selles artiklis püüdsin välja tuua just need punktid, mis aitasid mind kõige rohkem, ja loodan, et need aitavad ka teisi.
Allikas: habr.com
