Pag-optimize sa performance sa Apache2

Daghang mga tawo ang naggamit sa apache2 ingon usa ka web server. Bisan pa, pipila ka mga tawo ang naghunahuna bahin sa pag-optimize sa pasundayag niini, nga direkta nga nakaapekto sa katulin sa pag-load sa mga panid sa site, ang katulin sa pagproseso sa mga script (sa partikular nga php), ingon usab usa ka pagtaas sa load sa CPU ug pagtaas sa gidaghanon sa gigamit nga RAM.

Busa, ang mosunod nga manwal kinahanglan makatabang sa mga nagsugod (ug dili lamang) nga tiggamit.
Ang tanan nga mga pananglitan sa ubos gigamit sa Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Busa, magsugod kita.

1. Pag-disable sa wala magamit nga mga module

Ang una nga paagi mao ang pag-disable lang sa mga module nga wala nimo gigamit:

Ang lista sa karon nga gigamit nga mga module mahimong tan-awon uban ang mando:

apache2ctl -M

Aron ma-disable ang module, gamita ang command:

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

Busa, aron mahimo ang module, gamita ang command:

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

Palihug timan-i nga kon gamiton a2dismod, ang ngalan sa module kinahanglang isulat nga wala ang pulong module mismo.

Pananglitan, kung naa ka sa output sa mando apache2ctl -M nakakita proxy_module, unya aron ma-disable kini kinahanglan nimo gamiton ang command - a2dismod proxy

Ang mga module nga labing nagkarga sa sistema (gikan sa personal nga kasinatian) mao ang:

  • PHP, Ruby, Perl ug uban pang mga module para sa lain-laing mga scripting nga pinulongan
  • SSL
  • Rewrite
  • CGI

Mao nga sa mga kaso diin dili nimo kinahanglan kini nga mga module, girekomenda nako nga i-disable kini nga mga module.

Usab, human sa pag-disable sa bisan unsang module, girekomendar nako ang paggamit sa command - apache2ctl configtest, nga magsusi sa pag-configure sa mga site nga gigamit ug kung adunay bisan kinsa sa mga disabled nga mga module nga gikinahanglan alang kanila, kini makamugna og usa ka sayup.

2. Pag-ilis sa MPM (Multi-Processing Module) ug gamit ang php-fpm

Sa kasagaran, human sa pag-instalar, ang apache2 naggamit sa MPM Prefork (1 thread kada 1 nga koneksyon), nga makapakunhod pag-ayo sa performance, apan sa samang higayon makapauswag sa kalig-on ug seguridad.

Apan aron ma-optimize ang pasundayag, girekomenda nako ang paggamit sa MPM Worker, nga nagtugot kanimo sa paggamit sa daghang mga hilo matag koneksyon.

Aron mahimo kini gamiton namo ang mosunod nga mga sugo:

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

Bisan pa, kung gigamit ang Worker mahimo ka makasugat og problema tungod kay... Ang php7.3 module nagdepende sa Prefork module.

Aron masulbad kini nga problema, atong i-install ang php7.3-fpm module, nga gamiton sa pagpadagan sa mga script sa 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  //Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ для Π½Π΅Π³ΠΎ

Angay nga hinumdoman nga ang paggamit sa php-fpm makapakunhod usab sa gidaghanon sa RAM nga gigamit sa proseso sa apache2 ug gamay nga pagpadali sa pagproseso sa mga script sa PHP.

3. Panapos

Busa, sa ingon ka yano nga mga aksyon nakahimo kami sa pag-optimize sa performance ug pagpakunhod sa load sa makina (sa niini nga kaso RPI3).

Siyempre, adunay gatusan ka uban pang mga kapilian sa pag-optimize, sama sa pagpagana sa compression (nga mapuslanon kaayo, apan ang kadaghanan gipalihok na pinaagi sa default), pag-usab sa mga setting sa MPM (mga file sa pag-configure), pag-disable sa HostnameLookups, ug uban pa, apan niining artikuloha gisulayan nako nga reflect Kini mao ang mga punto nga nakatabang kanako pag-ayo, ug ako naglaum nga makatabang sa uban.

Source: www.habr.com

Idugang sa usa ka comment