Ottimizzazione delle prestazioni di Apache2

Molte persone usano apache2 come server web. Tuttavia, poche persone pensano a ottimizzarne le prestazioni, che influiscono direttamente proporzionalmente sulla velocità di caricamento delle pagine del sito, sulla velocità di elaborazione degli script (in particolare php), nonché su un aumento del carico della CPU e un aumento della quantità di RAM utilizzata.

Pertanto, il seguente manuale dovrebbe aiutare gli utenti principianti (e non solo).
Tutti gli esempi seguenti sono stati utilizzati su Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Quindi cominciamo.

1. Disabilitare i moduli non utilizzati

Il primo metodo è semplicemente disabilitare i moduli che non usi:

L'elenco dei moduli attualmente utilizzati può essere visualizzato con il comando:

apache2ctl -M

Per disabilitare il modulo utilizzare il comando:

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

Di conseguenza, per abilitare il modulo, utilizzare il comando:

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

Si prega di notare che durante l'utilizzo a2dismo, il nome del modulo deve essere scritto senza la parola modulo stesso.

Ad esempio, se ti trovi nell'output del comando apache2ctl-M ha visto la modulo_proxy, quindi per disabilitarlo è necessario utilizzare il comando - proxy a2dismod

I moduli che caricano maggiormente il sistema (per esperienza personale) sono:

  • PHP, Ruby, Perl e altri moduli per vari linguaggi di scripting
  • SSL
  • Riscrivere
  • CGI

Quindi, nei casi in cui non hai bisogno di questi moduli, ti consiglio di disabilitarli.

Inoltre, dopo aver disabilitato qualsiasi modulo, consiglio di utilizzare il comando - apache2ctl test di configurazione, che controllerà la configurazione dei siti utilizzati e se per essi fosse necessario qualcuno dei moduli disabilitati, genererà un errore.

2. Modifica MPM (Modulo Multi-Processing) e utilizzo di php-fpm

Per impostazione predefinita, dopo l'installazione, apache2 utilizza MPM Prefork (1 thread per 1 connessione), che riduce significativamente le prestazioni, ma allo stesso tempo migliora la stabilità e la sicurezza.

Ma per ottimizzare le prestazioni, ti consiglio di utilizzare MPM Worker, che ti consente di utilizzare più thread per connessione.

Per abilitarlo utilizziamo i seguenti comandi:

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

Tuttavia, quando usi Worker potresti riscontrare un problema perché... Il modulo php7.3 dipende dal modulo Prefork.

Per risolvere questo problema installiamo il modulo php7.3-fpm, che verrà utilizzato per eseguire gli script 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  //Включаем модуль и конфиг для него

Vale la pena notare che l'utilizzo di php-fpm ridurrà anche la quantità di RAM utilizzata dal processo apache2 e accelererà leggermente l'elaborazione degli script PHP.

3. Заключение

Pertanto, con azioni così semplici siamo riusciti a ottimizzare le prestazioni e ridurre il carico sulla macchina (in questo caso RPI3).

Naturalmente, ci sono centinaia di altre opzioni di ottimizzazione, come abilitare la compressione (che è davvero utile, ma la maggior parte è già abilitata per impostazione predefinita), modificare le impostazioni MPM (file di configurazione), disabilitare HostnameLookups, ecc., ma in questo articolo ho provato a riflettere Questi sono i punti che mi hanno aiutato di più, e spero che possano aiutare altri.

Fonte: habr.com

Aggiungi un commento