Apache2 ydeevneoptimering

Mange mennesker bruger apache2 som en webserver. Men de færreste tænker på at optimere dens ydeevne, hvilket direkte proportionalt påvirker indlæsningshastigheden af ​​webstedssider, hastigheden på behandling af scripts (især php), samt en stigning i CPU-belastning og en stigning i mængden af ​​brugt RAM.

Følgende manual skulle derfor hjælpe begyndere (og ikke kun) brugere.
Alle eksempler nedenfor blev brugt på Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Så lad os komme i gang.

1. Deaktivering af ubrugte moduler

Den første metode er simpelthen at deaktivere moduler, som du ikke bruger:

Listen over aktuelt brugte moduler kan ses med kommandoen:

apache2ctl -M

For at deaktivere modulet, brug kommandoen:

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

Brug derfor kommandoen for at aktivere modulet:

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

Bemærk venligst, at ved brug a2dismod, skal modulets navn skrives uden selve ordmodulet.

For eksempel, hvis du er i udgangen af ​​kommandoen apache2ctl -Mproxy_modul, så for at deaktivere det skal du bruge kommandoen - a2dismod proxy

De moduler, der belaster systemet mest (af personlig erfaring) er:

  • PHP, Ruby, Perl og andre moduler til forskellige scriptsprog
  • SSL
  • Omskriv
  • CGI

Så i tilfælde hvor du ikke har brug for disse moduler, anbefaler jeg at deaktivere disse moduler.

Efter at have deaktiveret ethvert modul, anbefaler jeg også at bruge kommandoen - apache2ctl configtest, som vil kontrollere konfigurationen af ​​de anvendte websteder, og hvis nogle af de deaktiverede moduler var nødvendige for dem, vil det generere en fejl.

2. Ændring af MPM (Multi-Processing Module) og brug af php-fpm

Som standard, efter installation, bruger apache2 MPM Prefork (1 tråd pr. 1 forbindelse), hvilket reducerer ydeevnen betydeligt, men samtidig forbedrer stabiliteten og sikkerheden.

Men for at optimere ydeevnen anbefaler jeg at bruge MPM Worker, som giver dig mulighed for at bruge flere tråde pr. forbindelse.

For at aktivere det bruger vi følgende kommandoer:

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

Men når du bruger Worker, kan du støde på et problem, fordi... php7.3-modulet afhænger af Prefork-modulet.

For at løse dette problem, lad os installere php7.3-fpm-modulet, som vil blive brugt til at køre PHP-scripts:

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

Det er værd at bemærke, at brug af php-fpm også vil reducere mængden af ​​RAM, der bruges af apache2-processen og fremskynde behandlingen af ​​PHP-scripts en smule.

3. Konklusion

Med så enkle handlinger var vi således i stand til at optimere ydeevnen og reducere belastningen på maskinen (i dette tilfælde RPI3).

Selvfølgelig er der hundredvis af andre optimeringsmuligheder, som at aktivere komprimering (hvilket er virkelig nyttigt, men de fleste er allerede aktiveret som standard), at ændre MPM-indstillinger (konfigurationsfiler), deaktivere HostnameLookups osv., men i denne artikel forsøgte jeg at reflektere Dette er de punkter, der hjalp mig mest, og jeg håber, at de vil hjælpe andre.

Kilde: www.habr.com

Tilføj en kommentar