ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π½Π° производитСлността Π½Π° 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 (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.

Π—Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ‰Π΅ инсталирамС ΠΌΠΎΠ΄ΡƒΠ»Π° 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 ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Ρ‰Π΅ Π½Π°ΠΌΠ°Π»ΠΈ количСството ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠžΠ—Π£ ΠΎΡ‚ процСса apache2 ΠΈ ΠΌΠ°Π»ΠΊΠΎ Ρ‰Π΅ ускори ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° php-скриптовСтС.

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

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

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

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

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