Настройка часов (Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ²) Apache 4.6: оптимизация сСрвСра

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°ΠΌΠΈ оТидания являСтся критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌ аспСктом администрирования любого Π²Π΅Π±-сСрвСра, ΠΈ Apache HTTP Server Π½Π΅ являСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Когда говорят ΠΎ"часах" Π² контСкстС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Apache, Ρ‡Π°Ρ‰Π΅ всСго ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π΄ΠΎ Ρ€Π°Π·Ρ€Ρ‹Π²Π° соСдинСния. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠ° этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ рСсурса ΠΈ Π΅Π³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΈΠΊΠΎΠ²Ρ‹Π΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±Π΅Π· зависаний.

НСкоррСктныС настройки Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Π΄Π²ΡƒΠΌ ΠΊΡ€Π°ΠΉΠ½ΠΈΠΌ ситуациям: Π»ΠΈΠ±ΠΎ сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ слишком Π΄ΠΎΠ»Π³ΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ"ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Π΅" соСдинСния, расходуя рСсурсы, Π»ΠΈΠ±ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅, Π½ΠΎ Π²Π°Π»ΠΈΠ΄Π½Ρ‹Π΅ запросы ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² с ΠΏΠ»ΠΎΡ…ΠΈΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ. Π’ соврСмСнных вСрсиях, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π΅Ρ‚ΠΊΡƒ 4.6, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ² стали Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ, трСбуя ΠΎΡ‚ администратора Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания процСссов взаимодСйствия ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ сСрвСра. НиТС ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ… Ρ‚ΠΎΠ½ΠΊΠΎΠΉ настройки.

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ основному ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ называСтся httpd.conf ΠΈΠ»ΠΈ apache2.conf, Π² зависимости ΠΎΡ‚ дистрибутива ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. ИзмСнСния Π²ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² силу Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ слуТбы, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остороТности ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² Π±ΠΎΠ΅Π²ΠΎΠΉ срСдС. Базовая настройка Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ² часто являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом ΠΏΡ€ΠΈ устранСнии ошибок 504 Gateway Timeout ΠΈΠ»ΠΈ 408 Request Timeout.

πŸ“Š Какой Ρ‚ΠΈΠΏ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρƒ вас большС всСго ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ?
Timeout соСдинСния
ProxyTimeout
ВрСмя выполнСния CGI
KeepAlive Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом управлСния Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ оТидания являСтся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Timeout, которая Π·Π°Π΄Π°Π΅Ρ‚ ΠΎΠ±Ρ‰Π΅Π΅ количСство сСкунд, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сСрвСр ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Apache это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ часто установлСно Π½Π° 300 сСкунд, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎ для статичСских сайтов, Π½ΠΎ нСдостаточно для тяТСлых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° позволяСт быстрСС ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ‚ΡŒ занятыС Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹ (процСссы ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ), ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ сСрвСра.

Однако слСпоС ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ значСния Timeout ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΠ±Ρ€Ρ‹Π²Ρƒ соСдинСний Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°Π½Π°Π»ΠΎΠΌ связи ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π’Π°ΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ баланс, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сСрвСр Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚"Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ" зависшиС сокСты, Π½ΠΎ ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡΠ²Π»ΡΡ‚ΡŒ излишнСй агрСссии ΠΊ Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½Ρ‹ΠΌ запросам. Для скриптов, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ»ΠΈ гСнСрация Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ асинхронныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, Ρ‡Π΅ΠΌ просто ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚.

  • ⏱️ Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ влияСт Π½Π° всС этапы ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запроса, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ Ρ‚Π΅Π»Π° запроса.
  • πŸ“‰ УмСньшСниС значСния ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстрСС ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ соСдинСний ΠΏΡ€ΠΈ DDoS-Π°Ρ‚Π°ΠΊΠ°Ρ… Ρ‚ΠΈΠΏΠ° Slowloris.
  • πŸ› οΈ Для PHP-скриптов часто трСбуСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ настройка max_execution_time Π² php.ini, которая Π½Π΅ зависит Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΡ‚ Apache.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Timeout Π² Apache 2.4 ΠΈ Π½ΠΎΠ²Π΅Π΅ (ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ относится ΠΈ гипотСтичСская 4.6) ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‡Π΅ΠΌ просто Ρ‚Π°ΠΉΠΌΠ΅Ρ€ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Она ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ врСмя, ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ запроса, врСмя ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π°ΠΌΠΈ TCP-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ ΠΈ врСмя Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ACK-ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ПониманиС этой ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΈ позволяСт Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ сСти.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Установка значСния Timeout Π½ΠΈΠΆΠ΅ 10 сСкунд ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ массовым ошибкам 408 для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… прокси-сСрвСры ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ (high latency).

ΠŸΡ€ΠΈ использовании Apache Π² качСствС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси (reverse proxy) ΠΏΠ΅Ρ€Π΅Π΄ сСрвСрами ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Tomcat, Node.js ΠΈΠ»ΠΈ Python Gunicorn), Π²ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² силу спСцифичСскиС Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ проксирования. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ProxyTimeout пСрСопрСдСляСт Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ для соСдинСний с бэкСндом. Π­Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ прилоТСния Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½"Π²Π΅ΡˆΠ°Ρ‚ΡŒ" вСсь Π²Π΅Π±-сСрвСр, оТидая ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ upstream-сСрвСра.

Если вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСт слоТныС вычислСния, стандартного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ, ΠΈ Apache Ρ€Π°Π·ΠΎΡ€Π²Π΅Ρ‚ соСдинСниС с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ, Π΄Π°ΠΆΠ΅ Ссли бэкСнд Π² ΠΈΡ‚ΠΎΠ³Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ Π·Π°Π΄Π°Ρ‡Ρƒ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈΠ±ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ прилоТСния, Π»ΠΈΠ±ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ProxyTimeout для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… location-Π±Π»ΠΎΠΊΠΎΠ². Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ProxyPass, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ.

  • πŸ”— ProxyTimeout опрСдСляСт врСмя оТидания ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвСра, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Apache обращаСтся ΠΊΠ°ΠΊ прокси.
  • βš™οΈ Для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ часто трСбуСтся Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… сСрвисов.
  • πŸš€ ИспользованиС connectiontimeout Π² строкС ProxyPass позволяСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ врСмя установки соСдинСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настройки ProxyTimeout для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ location

ProxyPass http://backend:8080/

ProxyTimeout 300

Частой ошибкой являСтся ΠΈΠ³Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ соСдинСния ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ чтСния Π΄Π°Π½Π½Ρ‹Ρ…. Если бэкСнд-сСрвСр ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ соСдинСниС, Π½ΠΎ Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ ΠΎΡ‚Π΄Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, сработаСт ΠΈΠΌΠ΅Π½Π½ΠΎ ProxyTimeout. Π’ Π»ΠΎΠ³Π°Ρ… это часто отраТаСтся ΠΊΠ°ΠΊ ошибка"Timeout waiting for input from remote server". Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… ситуаций ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ уровня debug для модуля mod_proxy.

Как Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ бэкСнд?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ curl с Ρ„Π»Π°Π³ΠΎΠΌ -w для Π·Π°ΠΌΠ΅Ρ€Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°: curl -w"@curl-format.txt" -o /dev/null -s"http://ваш-сайт/api". Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° curl-format.txt: time_namelookup: %{time_namelookup}\n time_connect: %{time_connect}\n time_appconnect: %{time_appconnect}\n time_pretransfer: %{time_pretransfer}\n time_redirect: %{time_redirect}\n time_starttransfer: %{time_starttransfer}\n ----------\n time_total: %{time_total}\n

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ KeepAlive позволяСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈ сСрвСру ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ постоянноС соСдинСниС для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… запросов, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускоряСт Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ страниц с мноТСством элСмСнтов (ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, стили, скрипты). Однако Ρƒ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ свои"часы": KeepAliveTimeout опрСдСляСт, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ соСдинСнии. Π’ Apache 2.4+ появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² миллисСкундах для большСй точности.

Блишком высокоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ KeepAliveTimeout ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹ Apache ΠΏΡ€ΠΎΡΡ‚Π°ΠΈΠ²Π°ΡŽΡ‚, оТидая Π½ΠΎΠ²Ρ‹Ρ… запросов ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠΆΠ΅ ΡƒΡˆΠ»ΠΈ со страницы. Π­Ρ‚ΠΎ классичСская ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, вСдущая ΠΊ ошибкС"MaxRequestWorkers reached", ΠΊΠΎΠ³Π΄Π° сСрвСр пСрСстаСт ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ соСдинСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС слоты заняты"спящими" сокСтами. РСкомСндуСтся ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΈΠ·ΠΊΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2-5 сСкунд.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ВлияниС Π½Π° сСрвСр
KeepAlive On Π‘Π½ΠΈΠΆΠ°Π΅Ρ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° CPU Π·Π° счСт количСства Ρ€ΡƒΠΊΠΎΠΏΠΎΠΆΠ°Ρ‚ΠΈΠΉ TCP.
KeepAliveTimeout 2-5 сСк ВысокиС значСния Ρ€Π°ΡΡ…ΠΎΠ΄ΡƒΡŽΡ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ слоты Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ².
MaxKeepAliveRequests 100-200 ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ»-Π²ΠΎ запросов Π½Π° ΠΎΠ΄Π½ΠΎ соСдинСниС.

β˜‘οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ KeepAlive

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ установлСниСм соСдинСний, поэтому экономия рСсурсов Π½Π° ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠΈ старых ΠΊΠ°Π½Π°Π»ΠΎΠ² связи ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Π΅Π΅, Ρ‡Π΅ΠΌ тСорСтичСскоС ускорСниС Π·Π° счСт KeepAlive. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ HTTP/2 (ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» h2), концСпция KeepAlive мСняСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ соСдинСния, ΠΈ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ нСсколько ΠΈΠ½Π°Ρ‡Π΅, ΡƒΠΏΡ€Π°Π²Π»ΡΡΡΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ°ΠΌΠΈ Ping.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании HTTP/2 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ KeepAliveTimeout ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ настроСк ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, Π½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° простыми соСдинСниями остаСтся Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ для совмСстимости.

Для динамичСского ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ скриптовыми языками (PHP, Python, Perl), ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ собствСнныС Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ исполнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°ΠΌΠΈ Apache. НапримСр, Π² PHP Π΅ΡΡ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° max_execution_time, Π° Π² Python (Gunicorn/uWSGI) β€” свои Π»ΠΈΠΌΠΈΡ‚Ρ‹ Π½Π° врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°. Если скрипт выполняСтся дольшС, Ρ‡Π΅ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½, Π½ΠΎ Apache ΠΌΠΎΠΆΠ΅Ρ‚ всС Π΅Ρ‰Π΅ ΠΆΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса, Ссли Π½Π΅ настроСна ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ коммуникация.

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ рассинхронизация: Apache ΠΆΠ΄Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ CGI/FPM, Π° Ρ‚ΠΎΡ‚ ΡƒΠΆΠ΅ ΡƒΠΏΠ°Π» ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρƒ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ PHP-FPM ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ request_terminate_timeout Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ согласован с ProxyTimeout ΠΈΠ»ΠΈ FCGITimeout Π² Apache. ΠΠ΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ этих"часов" ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ появлСнию Π² Π»ΠΎΠ³Π°Ρ… ошибок 502 Bad Gateway ΠΈΠ»ΠΈ 504 Gateway Timeout.

  • 🐘 PHP-FPM ΠΈΠΌΠ΅Π΅Ρ‚ собствСнныС настройки Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ настройки Π²Π΅Π±-сСрвСра.
  • ⏳ Длинная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° запроса Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ вынСсСна Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ (ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ), Π° Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² HTTP-контСкстС.
  • πŸ”Œ ΠŸΡ€ΠΈ использовании FastCGI ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -idle-timeout управляСт Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ простоя процСсса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настройки FCGITimeout для PHP

SetHandler"proxy:fcgi://127.0.0.1:9000"

FCGITimeout 300

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ² Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Apache Π½Π΅ Ρ€Π΅ΡˆΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Если вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, просто"Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ" лишь ΠΎΡ‚ΠΎΠ΄Π²ΠΈΠ½Π΅Ρ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ появлСния ошибки, Π½ΠΎ Π½Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… всСгда эффСктивнСС, Ρ‡Π΅ΠΌ настройка Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ².

ПослС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ синтаксис ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ apachectl configtest ΠΈΠ»ΠΈ apache2ctl configtest. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° сСрвСр Π½Π΅ запустится послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·-Π·Π° ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Π² ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ. Волько послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ синтаксиса слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ измСнСния ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ reload ΠΈΠ»ΠΈ restart.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π»ΠΎΠ³ΠΎΠ² послС примСнСния настроСк β€” ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ error_log Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ появлСния Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ². Если Π²Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΈ значСния, количСство ошибок ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ вырасти, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ баланс. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнты Π²Ρ€ΠΎΠ΄Π΅ mod_status для наблюдСния Π·Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ состояниСм Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ² Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Как ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ ΠΊ значСниям ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ?

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ настройки ΠΊ заводским, ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ (Π΄ΠΎΠ±Π°Π²ΠΈΠ² символ # Π² Π½Π°Ρ‡Π°Π»Π΅ строки) ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Apache автоматичСски ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹Π΅ значСния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² исходном ΠΊΠΎΠ΄Π΅ ΠΈΠ»ΠΈ стандартном ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ дистрибутива. Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° вСрсий это 300 сСкунд для Timeout ΠΈ 5 сСкунд для KeepAliveTimeout.

ВлияСт Π»ΠΈ настройка Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ² Π½Π° SSL/TLS Ρ€ΡƒΠΊΠΎΠΏΠΎΠΆΠ°Ρ‚ΠΈΠ΅?

Π”Π°, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Timeout Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ врСмя, ΠΎΡ‚Π²ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π½Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ SSL-рукопоТатия. Если ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ HTTPS ΠΈΠ·-Π·Π° сСтСвых Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ этого значСния, хотя Ρ‡Π°Ρ‰Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ SSL-модуля ΠΈΠ»ΠΈ сСтСвом ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ.

МоТно Π»ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостов?

Π”Π°, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠΎΠ² <VirtualHost>. Π­Ρ‚ΠΎ позволяСт Π·Π°Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ строгиС Π»ΠΈΠΌΠΈΡ‚Ρ‹ для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… сайтов ΠΈ Π±ΠΎΠ»Π΅Π΅ мягкиС β€” для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… административных ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ API, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… сСрвСрными прилоТСниями.