ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π½Π° производитСлността Π½Π° apache2

Много Ρ…ΠΎΡ€Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ apache2 ΠΊΠ°Ρ‚ΠΎ ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ тях сС замислят Π·Π° оптимизацията Π½Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° производитСлност, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ° пряко влияниС Π²ΡŠΡ€Ρ…Ρƒ скоростта Π½Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° страницитС Π½Π° сайта, скоростта Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° скриптовС (Π² частност php), Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈ Π½Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π°Ρ‚Π° натоварСност Π½Π° ЦП ΠΈ ΠΎΠ±Π΅ΠΌΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°Ρ‚Π° ΠžΠ—Π£.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, слСдващият Π½Π°Ρ€ΡŠΡ‡Π½ΠΈΠΊ трябва Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‰ΠΈ (ΠΈ Π½Π΅ само) ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ.
Всички ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ са ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π½Π° Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

И Ρ‚Π°ΠΊΠ°, Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ.

1. Π˜Π·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

ΠŸΡŠΡ€Π²ΠΈΡΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΅ простото ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅:

Π‘ΠΏΠΈΡΡŠΠΊΡŠΡ‚ Π½Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС видян с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

apache2ctl -M

Π—Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ» сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

a2dismod *ΠΈΠΌΠ΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π°*

Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Π·Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ» сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

a2enmod *ΠΈΠΌΠ΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π°*

ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° a2dismod, ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° трябва Π΄Π° сС пишС Π±Π΅Π· Π΄ΡƒΠΌΠ°Ρ‚Π° ΠΌΠΎΠ΄ΡƒΠ».

НапримСр, Π°ΠΊΠΎ Π² ΠΈΠ·Ρ…ΠΎΠ΄Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° apache2ctl -M стС Π²ΠΈΠ΄Π΅Π»ΠΈ proxy_module, Ρ‚ΠΎ Π·Π° Π΄Π° Π³ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€” a2dismod proxy

Най-Ρ‚Π΅ΠΆΠΊΠΈΡ‚Π΅ Π·Π° систСмата ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (ΠΏΠΎ собствСн ΠΎΠΏΠΈΡ‚) са:

  • PHP, Ruby, Perl ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ скриптови Π΅Π·ΠΈΡ†ΠΈ
  • SSL
  • Rewrite
  • CGI

Π—Π°Ρ‚ΠΎΠ²Π° Π² случаитС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚Π΅Π·ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π΅ са Π²ΠΈ Π½ΡƒΠΆΠ½ΠΈ, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, слСд ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° някой ΠΌΠΎΠ΄ΡƒΠ», ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€” apache2ctl configtest, която Ρ‰Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ конфигурацията Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ сайтовС ΠΈ Π°ΠΊΠΎ някой ΠΎΡ‚ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π·Π° тях, Ρ‰Π΅ ΠΈΠ·Π΄Π°Π΄Π΅ Π³Ρ€Π΅ΡˆΠΊΠ°.

2. ΠŸΡ€ΠΎΠΌΡΠ½Π° Π½Π° MPM (ΠœΠΎΠ΄ΡƒΠ» Π·Π° многопроцСсорни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ) ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° 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.

Π—Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ‰Π΅ инсталирамС ΠΌΠΎΠ΄ΡƒΠ»Π° php7.3-fpm, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° 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  \/\/ Π’ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π° ΠΈ конфигурацията Π·Π° Π½Π΅Π³ΠΎ

Π—Π°Π±Π΅Π»Π΅ΠΆΠ΅Ρ‚Π΅, Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° php-fpm ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Ρ‰Π΅ Π½Π°ΠΌΠ°Π»ΠΈ ΠΎΠ±Π΅ΠΌΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°Ρ‚Π° RAM ΠΎΡ‚ процСса apache2 ΠΈ Π»Π΅ΠΊΠΎ Ρ‰Π΅ ускори ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° php скриптовСтС.

3. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, с Ρ‚Π΅Π·ΠΈ прости дСйствия успяхмС Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ производитСлността ΠΈ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° (Π² Ρ‚ΠΎΠ·ΠΈ случай RPI3).

Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΈΠΌΠ° стотици Π΄Ρ€ΡƒΠ³ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ Π·Π° оптимизация, ΠΊΠ°Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° компрСсия (ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ наистина ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½ΠΎ Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи Π²Π΅Ρ‡Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅), промяна Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ (Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ с конфигурация) MPM, ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° HostnameLookups ΠΈ Ρ‚.Π½., Π½ΠΎ Π² Ρ‚Π°Π·ΠΈ статия сС ΠΎΠΏΠΈΡ‚Π°Ρ… Π΄Π° отразя ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π΅Π·ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ…Π° Π½Π° ΠΌΠ΅Π½, ΠΈ сС надявам, Ρ‡Π΅ Ρ‰Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster