Optimalizácia výkonu Apache2

Mnoho ľudí používa apache2 ako webový server. Málokto však premýšľa o optimalizácii jeho výkonu, čo priamo úmerne ovplyvňuje rýchlosť načítania stránok webu, rýchlosť spracovania skriptov (najmä php), ako aj zvýšenie zaťaženia procesora a zvýšenie množstva použitej pamäte RAM.

Nasledujúca príručka by teda mala pomôcť začiatočníkom (nielen) používateľom.
Všetky nižšie uvedené príklady boli použité na Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Итак, начнем.

1. Vypnutie nepoužívaných modulov

Prvým spôsobom je jednoducho zakázať moduly, ktoré nepoužívate:

Zoznam aktuálne používaných modulov je možné zobraziť príkazom:

apache2ctl -M

Ak chcete modul vypnúť, použite príkaz:

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

Ak chcete modul povoliť, použite príkaz:

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

Upozorňujeme, že pri používaní a2dismod, názov modulu musí byť napísaný bez samotného slova modul.

Napríklad, ak ste vo výstupe príkazu apache2ctl -M videl proxy_module, potom na jeho vypnutie musíte použiť príkaz - a2dismod proxy

Moduly, ktoré najviac zaťažujú systém (z osobnej skúsenosti), sú:

  • PHP, Ruby, Perl a ďalšie moduly pre rôzne skriptovacie jazyky
  • SSL
  • prepísať
  • CGI

Takže v prípadoch, keď tieto moduly nepotrebujete, odporúčam tieto moduly vypnúť.

Po vypnutí akéhokoľvek modulu tiež odporúčam použiť príkaz - apache2ctl configtest, ktorý skontroluje konfiguráciu používaných stránok a ak bol pre ne potrebný niektorý z vypnutých modulov, vygeneruje chybu.

2. Zmena MPM (Multi-Processing Module) a používanie php-fpm

Štandardne po inštalácii apache2 používa MPM Prefork (1 vlákno na 1 pripojenie), čo výrazne znižuje výkon, no zároveň zlepšuje stabilitu a bezpečnosť.

Pre optimalizáciu výkonu však odporúčam použiť MPM Worker, ktorý vám umožňuje používať viacero vlákien na jedno pripojenie.

Na jeho aktiváciu používame nasledujúce príkazy:

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

Pri používaní Worker však môžete naraziť na problém, pretože... Modul php7.3 závisí od modulu Prefork.

Na vyriešenie tohto problému si nainštalujte modul php7.3-fpm, ktorý sa bude používať na spúšťanie PHP skriptov:

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

Stojí za zmienku, že použitie php-fpm tiež zníži množstvo pamäte RAM používanej procesom apache2 a mierne urýchli spracovanie PHP skriptov.

3. záver

Takýmito jednoduchými akciami sme boli schopní optimalizovať výkon a znížiť zaťaženie stroja (v tomto prípade RPI3).

Samozrejme, existujú stovky ďalších možností optimalizácie, ako je povolenie kompresie (ktorá je naozaj užitočná, ale väčšina z nich je už štandardne povolená), zmena nastavení MPM (konfiguračné súbory), zakázanie vyhľadávania hostname atď., ale v tomto článku som sa snažil odrážajú Toto sú body, ktoré mi pomohli najviac a dúfam, že pomôžu aj ostatným.

Zdroj: hab.com

Pridať komentár