Выпуск nginx 1.25.3, njs 0.8.2 ΠΈ NGINX Unit 1.31.1

Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ выпуск основной Π²Π΅Ρ‚ΠΊΠΈ nginx 1.25.3, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ продолТаСтся Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй. Π’ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ 1.24.x вносятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния, связанныС с устранСниСм ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Ρ… ошибок ΠΈ уязвимостСй. Π’ дальнСйшСм Π½Π° Π±Π°Π·Π΅ основной Π²Π΅Ρ‚ΠΊΠΈ 1.25.x Π±ΡƒΠ΄Π΅Ρ‚ сформирована ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ° 1.26. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Π‘ΠΈ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD.

Π‘Ρ€Π΅Π΄ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

  • УсилСна Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ аномальной активности ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² HTTP/2, ΠΈ, Π² частности, ΠΎΡ‚ DoS-Π°Ρ‚Π°ΠΊ класса «Rapid Reset», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… создаётся большоС число сразу сбрасываСмых ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ соСдинСния HTTP/2. Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ ΡƒΠΏΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² Π»ΠΈΠΌΠΈΡ‚ Π½Π° число запросов Π½Π° соСдинСниС «keepalive_requests» (послС ΠΊΠ°ΠΆΠ΄Ρ‹Ρ… 1000 запросов соСдинСниС Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒΡΡ) ΠΈ Π² ограничСния «limit_req». Для Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅Π³ΠΎ рСагирования Π½Π° Ρ„Π»ΡƒΠ΄ запросами Ρ‡Π΅Ρ€Π΅Π· большоС число ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ 256 (2 * max_concurrent_streams) Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий. НовоС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы Π΄ΠΎ достиТСния ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π»ΠΈΠΌΠΈΡ‚Π° Π½Π° число ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ асинхронно ΠΈΠ»ΠΈ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ. АналогичноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ вошло Π² состав выпуска angie 1.3.1 (Ρ„ΠΎΡ€ΠΊ nginx), ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ нСдСлю Π½Π°Π·Π°Π΄.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΈ автоматичСском ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ соСдинСний HTTP/2.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ запуска ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ с большим числом Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² «location».
  • УстранСно Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса, наблюдаСмоС ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ использования HTTP/2 Π±Π΅Π· SSL.
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° нСкоррСктная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ бэкСндом Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° «Status» с пустым ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΠΌ тСкстом.
  • УстранСна ΡƒΡ‚Π΅Ρ‡ΠΊΠ° памяти Π²ΠΎ врСмя пСрСконфигурирования, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈ сборкС с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ PCRE2.
  • ВнСсСна большая порция исправлСний ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ, связанных с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/3.

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ состоялся выпуск njs 0.8.2, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° языка JavaScript для Π²Π΅Π±-сСрвСра nginx. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ njs Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ стандарты ECMAScript ΠΈ позволяСт Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ возмоТности nginx ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ запросов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скриптов Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для опрСдСлСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов, формирования ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, динамичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ запроса/ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΈΠ»ΠΈ быстрого создания Π·Π°Π³Π»ΡƒΡˆΠ΅ΠΊ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² web-прилоТСниях. Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ console, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ error(), info(), log(), time(), timeEnd() ΠΈ warn(). Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ fs Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ fs.existsSync().

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ сСрвСра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ NGINX Unit 1.31.1, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для обСспСчСния запуска web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках программирования (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ΠΈ Java). Под ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ NGINX Unit ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ нСсколько ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запуска ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ динамичСски Π±Π΅Π· нСобходимости ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ пСрСзапуска. ΠšΡ€ΠΎΠΌΠ΅ исправлСния ошибок Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Wasm Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 4 Π“Π‘, Π° ΠΏΡ€ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π΅ прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ установки ΠΊΠΎΠ΄ΠΎΠ² состояния HTTP.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru