ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° nginx 1.17.1 ΠΈ njs 0.3.3

На Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ освобоТдаванС Π½Π° Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΠΎΠ½ nginx 1.17.1, Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π² ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π° стабилна ΠΊΠ»ΠΎΠ½ 1.16 правят сС само ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с отстраняванСто Π½Π° сСриозни Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ уязвимости.

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° limit_req_dry_run, ΠΊΠΎΠΉΡ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° пробния Ρ€Π΅ΠΆΠΈΠΌ, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ ограничСния Π²ΡŠΡ€Ρ…Ρƒ интСнзивността Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° заявкитС (Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° скоростта), Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° ΠΎΡ‚Ρ‡ΠΈΡ‚Π° броя Π½Π° заявкитС, Π½Π°Π΄Π²ΠΈΡˆΠ°Π²Π°Ρ‰ΠΈ ограничСнията Π² сподСлСната ΠΏΠ°ΠΌΠ΅Ρ‚;
  • ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° β€župstreamβ€œ Π² Π±Π»ΠΎΠΊΠ° с настройки β€župstreamβ€œ.Ρ…Π°ΡˆΠΈΡˆΒ» Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° балансиранС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ с ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-ΡΡŠΡ€Π²ΡŠΡ€, Π°ΠΊΠΎ Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΡ€Π°Π·Π½Π° стойност Π½Π° ΠΊΠ»ΡŽΡ‡, Ρ€Π΅ΠΆΠΈΠΌΡŠΡ‚ Π½Π° Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ балансиранС (ΠΊΡ€ΡŠΠ³ΠΎΠ² Ρ€Π΅ΠΆΠΈΠΌ) Π²Π΅Ρ‡Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½;
  • ΠšΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ срив Π½Π° работния процСс ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° кСша Π² комбинация с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° β€žimage_filterβ€œ ΠΈ прСнасочванС Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π° Π½Π° ΠΊΠΎΠ΄Π° Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° 415 с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° β€žerror_pageβ€œ;
  • ΠšΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ срив Π½Π° работния процСс, ΠΊΠΎΠΉΡ‚ΠΎ възниква ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° вградСния ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° Perl.

ОсвСн Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ njs 0.3.3, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° JavaScript Π·Π° ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€Π° nginx. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΡŠΡ‚ njs ΠΏΡ€ΠΈΠ»Π°Π³Π° стандартитС Π½Π° ECMAScript ΠΈ Π²ΠΈ позволява Π΄Π° Ρ€Π°Π·ΡˆΠΈΡ€ΠΈΡ‚Π΅ способността Π½Π° nginx Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° заявки с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° скриптовС Π² конфигурацията. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ» Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° заявки, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° конфигурация, Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° заявка/ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΈΠ»ΠΈ Π±ΡŠΡ€Π·ΠΎ създаванС Π½Π° ΠΌΡŠΠ½ΠΈΡ‡Π΅Ρ‚Π° Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΡƒΠ΅Π± прилоТСнията.

Новата вСрсия Π½Π° njs поправя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, установСни ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° тСстванС Π½Π° Ρ€Π°Π·ΠΌΠΈΠ²Π°Π½Π΅. Π’Π½Π΅Π΄Ρ€Π΅Π½Π° Π΅ Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° β€žΠΏΡ€ΠΎΡ†Π΅Ρβ€œ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата Π½Π° тСкущия процСс (process.pid, process.env.HOME ΠΈ Ρ‚.Π½.). ΠœΠΎΠ³Π°Ρ‚ Π΄Π° сС записват всички Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ. Π”ΠΎΠ±Π°Π²Π΅Π½Π° рСализация Π½Π° Array.prototype.fill(). Π’Π½Π΅Π΄Ρ€Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° синтаксиса, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π² ECMAScript 5 Ρ€Π°Π·ΠΏΠ»ΠΎΠ΄Π½ΠΈΠΊ ΠΈ сСтСр Π·Π° ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° свойство Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ към функция, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

var o = {a:2};
Object.defineProperty(o, 'b', {get:function(){return 2*this.a}});

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€