Optimîzasyona performansa Apache2

Pir kes apache2 wekî serverek malperê bikar tînin. Lêbelê, hindik kes li ser xweşbînkirina performansa wê difikirin, ku rasterast bi rêkûpêk bandorê li leza barkirina rûpelên malperê, leza hilberandina nivîsarên (bi taybetî php) dike, û her weha zêdebûna barkirina CPU û zêdebûna mîqdara RAM-a ku tê bikar anîn.

Bi vî rengî, manuala jêrîn divê ji bikarhênerên destpêker (û ne tenê) re bibe alîkar.
Hemî mînakên jêrîn li ser Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3 hatin bikar anîn.

Ji ber vê yekê, let me dest pê bike.

1. Neçalakkirina modulên ku nehatine bikaranîn

Rêbaza yekem ev e ku meriv modulên ku hûn bikar neynin neçalak bikin:

Navnîşa modulên ku niha têne bikar anîn dikare bi fermanê were dîtin:

apache2ctl -M

Ji bo neçalakkirina modulê, emrê bikar bînin:

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

Li gorî vê yekê, ji bo çalakkirina modulê, emrê bikar bînin:

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

Ji kerema xwe gava ku bikar bînin hişyar bikin a2dismod, navê modulê divê bêyî peyva modul bixwe were nivîsandin.

Mînakî, heke hûn di hilberîna fermanê de ne apache2ctl -M birrek proxy_module, paşê ji bo neçalakkirina wê hûn hewce ne ku emrê bikar bînin - a2dismod proxy

Modulên ku pergalê herî zêde bar dikin (ji ezmûna kesane) ev in:

  • PHP, Ruby, Perl û modulên din ên ji bo zimanên cûrbecûr nivîsandinê
  • SSL
  • Qeydgûherrandin
  • CGI

Ji ber vê yekê di rewşên ku hûn hewceyê van modulan nebin, ez pêşniyar dikim ku van modulan neçalak bikin.

Di heman demê de, piştî ku modulek neçalak bike, ez pêşniyar dikim ku emrê bikar bînin - veavakirina apache2ctl, ku dê veavakirina malperên ku hatine bikar anîn kontrol bike û heke yek ji modulên neçalak ji wan re hewce be, ew ê xeletiyek çêbike.

2. Guhertina MPM (Modula Pir Pêvajo) û karanîna php-fpm

Ji hêla xwerû, piştî sazkirinê, apache2 MPM Prefork bikar tîne (1 mijar ji 1 girêdanê), ku performansê bi girîngî kêm dike, lê di heman demê de aramî û ewlehiyê çêtir dike.

Lê ji bo xweşbînkirina performansê, ez pêşniyar dikim ku MPM Worker bikar bînin, ku destûrê dide te ku hûn ji her pêwendiyê gelek têlan bikar bînin.

Ji bo çalakkirina wê em fermanên jêrîn bikar tînin:

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

Lêbelê, dema ku Karker bikar bînin hûn dikarin pirsgirêkek rû bidin ji ber ku ... Modula php7.3 bi modula Prefork ve girêdayî ye.

Ji bo çareserkirina vê pirsgirêkê, em modulê php7.3-fpm saz bikin, ku dê ji bo xebitandina nivîsarên PHP-ê were bikar anîn:

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

Hêjayî gotinê ye ku karanîna php-fpm dê di heman demê de mîqdara RAM-a ku ji hêla pêvajoya apache2 ve tê bikar anîn kêm bike û pêvajoya nivîsarên PHP-ê hinekî bileztir bike.

3. Encam

Bi vî rengî, bi kiryarên weha hêsan me karîbû performansê xweştir bikin û barê li ser makîneyê kêm bikin (di vê rewşê de RPI3).

Bê guman, bi sedan vebijarkên xweşbîniyê yên din jî hene, mîna çalakkirina kompresyonê (ku bi rastî bikêr e, lê piraniya wan jixwe ve têne çalak kirin), guheztina mîhengên MPM (pelên vesazkirinê), neçalakkirina HostnameLookups, hwd., lê di vê gotarê de min hewl da ku nîşan bide Van xalên ku herî zêde ji min re bûne alîkar in, û ez hêvî dikim ku ez ê alîkariya kesên din bikim.

Source: www.habr.com

Add a comment