Apache2 өнімділігін оңтайландыру

Көптеген адамдар apache2-ні веб-сервер ретінде пайдаланады. Дегенмен, оның өнімділігін оңтайландыру туралы аз адамдар ойлайды, бұл сайт беттерін жүктеу жылдамдығына, сценарийлерді өңдеу жылдамдығына (атап айтқанда php), сонымен қатар процессор жүктемесінің жоғарылауына және пайдаланылатын жедел жад көлемінің ұлғаюына тікелей пропорционалды әсер етеді.

Осылайша, келесі нұсқаулық жаңадан бастаған (тек қана емес) пайдаланушыларға көмектесуі керек.
Төмендегі барлық мысалдар Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3 нұсқаларында қолданылған.

Сондықтан бастайық.

1. Пайдаланылмаған модульдерді өшіру

Бірінші әдіс - сіз пайдаланбайтын модульдерді жай ғана өшіру:

Ағымдағы пайдаланылатын модульдер тізімін мына пәрмен арқылы көруге болады:

apache2ctl -M

Модульді өшіру үшін пәрменді пайдаланыңыз:

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

Сәйкесінше, модульді қосу үшін пәрменді пайдаланыңыз:

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

пайдалану кезінде ескеріңіз a2dismod, модуль атауы модуль сөзінің өзінсіз жазылуы керек.

Мысалы, пәрменнің шығысында болсаңыз apache2ctl -M көрдім прокси_модуль, содан кейін оны өшіру үшін пәрменді пайдалану керек - a2dismod прокси

Жүйені ең көп жүктейтін модульдер (жеке тәжірибеден):

  • PHP, Ruby, Perl және әртүрлі сценарий тілдеріне арналған басқа модульдер
  • SSL
  • Жазыңыз
  • CGI

Сондықтан бұл модульдер қажет болмаса, мен бұл модульдерді өшіруді ұсынамын.

Сондай-ақ, кез келген модульді өшіргеннен кейін, пәрменді пайдалануды ұсынамын - apache2ctl configtest, ол пайдаланылған сайттардың конфигурациясын тексереді және олар үшін өшірілген модульдердің кез келгені қажет болса, ол қатені тудырады.

2. MPM (Multi-Processing Module) өзгерту және php-fpm пайдалану

Әдепкі бойынша, орнатудан кейін apache2 MPM Prefork (1 қосылымға 1 ағын) пайдаланады, бұл өнімділікті айтарлықтай төмендетеді, бірақ сонымен бірге тұрақтылық пен қауіпсіздікті жақсартады.

Бірақ өнімділікті оңтайландыру үшін әр қосылымға бірнеше ағындарды пайдалануға мүмкіндік беретін MPM Worker пайдалануды ұсынамын.

Оны қосу үшін келесі пәрмендерді қолданамыз:

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

Дегенмен, Worker қолданбасын пайдаланған кезде мәселе туындауы мүмкін, себебі... php7.3 модулі Prefork модуліне байланысты.

Бұл мәселені шешу үшін PHP сценарийлерін іске қосу үшін пайдаланылатын php7.3-fpm модулін орнатайық:

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

Айта кету керек, php-fpm пайдалану сонымен қатар apache2 процесі пайдаланатын жедел жад көлемін азайтады және PHP сценарийлерін өңдеуді сәл жылдамдатады.

3. Қорытынды

Осылайша, осындай қарапайым әрекеттер арқылы біз өнімділікті оңтайландыруға және машинадағы жүктемені азайтуға мүмкіндік алдық (бұл жағдайда RPI3).

Әрине, сығуды қосу (бұл шынымен пайдалы, бірақ көпшілігі әдепкі бойынша қосылған), MPM параметрлерін өзгерту (конфигурация файлдары), HostnameLookups қызметін өшіру және т.б. сияқты жүздеген басқа оңтайландыру опциялары бар, бірақ мен осы мақалада рефлексия Бұл маған ең көп көмектескен нүктелер және басқаларға көмектеседі деп үміттенемін.

Ақпарат көзі: www.habr.com

пікір қалдыру