Optimeiddio perfformiad Apache2

Mae llawer o bobl yn defnyddio apache2 fel gweinydd gwe. Fodd bynnag, ychydig o bobl sy'n meddwl am optimeiddio ei berfformiad, sy'n effeithio'n gyfrannol yn uniongyrchol ar gyflymder llwytho tudalennau safle, cyflymder prosesu sgriptiau (yn arbennig php), yn ogystal Γ’ chynnydd mewn llwyth CPU a chynnydd yn y swm o RAM a ddefnyddir.

Felly, dylai'r llawlyfr canlynol helpu defnyddwyr dechreuwyr (ac nid yn unig).
Defnyddiwyd yr holl enghreifftiau isod ar Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Felly, gadewch i ni ddechrau.

1. Analluogi modiwlau nas defnyddiwyd

Y dull cyntaf yw analluogi modiwlau nad ydych yn eu defnyddio:

Gellir gweld y rhestr o fodiwlau a ddefnyddir ar hyn o bryd gyda'r gorchymyn:

apache2ctl -M

I analluogi'r modiwl, defnyddiwch y gorchymyn:

a2dismod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля*

Yn unol Γ’ hynny, i alluogi'r modiwl, defnyddiwch y gorchymyn:

a2enmod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля*

Sylwch, wrth ddefnyddio a2dismod, rhaid ysgrifennu enw'r modiwl heb y modiwl gair ei hun.

Er enghraifft, os ydych chi yn allbwn y gorchymyn apache2ctl -M gwelodd modiwl_procsi, yna i'w analluogi mae angen i chi ddefnyddio'r gorchymyn - dirprwy a2dismod

Y modiwlau sy'n llwytho'r system fwyaf (o brofiad personol):

  • PHP, Ruby, Perl a modiwlau eraill ar gyfer ieithoedd sgriptio amrywiol
  • SSL
  • Ailysgrifennu
  • CGI

Felly mewn achosion lle nad oes angen y modiwlau hyn arnoch, rwy'n argymell analluogi'r modiwlau hyn.

Hefyd, ar Γ΄l analluogi unrhyw fodiwl, rwy'n argymell defnyddio'r gorchymyn - configtest apache2ctl, a fydd yn gwirio cyfluniad y gwefannau a ddefnyddiwyd ac os oedd unrhyw un o'r modiwlau anabl yn angenrheidiol ar eu cyfer, bydd yn cynhyrchu gwall.

2. Newid MPM (Modiwl Aml-Brosesu) a defnyddio php-fpm

Yn ddiofyn, ar Γ΄l ei osod, mae apache2 yn defnyddio MPM Prefork (1 edau fesul 1 cysylltiad), sy'n lleihau perfformiad yn sylweddol, ond ar yr un pryd yn gwella sefydlogrwydd a diogelwch.

Ond i wneud y gorau o berfformiad, rwy'n argymell defnyddio MPM Worker, sy'n eich galluogi i ddefnyddio edafedd lluosog fesul cysylltiad.

Er mwyn ei alluogi rydym yn defnyddio'r gorchmynion canlynol:

a2dismod mpm_prefork  //ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ prefork
a2dismod php7.3  //ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ php, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ зависит ΠΎΡ‚ prefork
a2enmod mpm_worker  //Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ worker

Fodd bynnag, wrth ddefnyddio Worker efallai y byddwch yn dod ar draws problem oherwydd... Mae'r modiwl php7.3 yn dibynnu ar y modiwl Prefork.

I ddatrys y broblem hon, gadewch i ni osod y modiwl php7.3-fpm, a fydd yn cael ei ddefnyddio i redeg sgriptiau 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  //Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ для Π½Π΅Π³ΠΎ

Mae'n werth nodi y bydd defnyddio php-fpm hefyd yn lleihau faint o RAM a ddefnyddir gan y broses apache2 ac yn cyflymu prosesu sgriptiau PHP ychydig.

3. Casgliad

Felly, gyda chamau gweithredu mor syml roeddem yn gallu optimeiddio perfformiad a lleihau'r llwyth ar y peiriant (RPI3 yn yr achos hwn).

Wrth gwrs, mae yna gannoedd o opsiynau optimeiddio eraill, fel galluogi cywasgu (sy'n ddefnyddiol iawn, ond mae'r rhan fwyaf eisoes wedi'u galluogi yn ddiofyn), newid gosodiadau MPM (ffeiliau ffurfweddu), analluogi HostnameLookups, ac ati, ond yn yr erthygl hon ceisiais wneud hynny. adlewyrchu Dyma'r pwyntiau a'm helpodd fwyaf, a gobeithio y byddant yn helpu eraill.

Ffynhonnell: hab.com

Ychwanegu sylw