Выпуск nginx 1.17.8 ΠΈ njs 0.3.8

Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ выпуск основной Π²Π΅Ρ‚ΠΊΠΈ nginx 1.17.8, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ продолТаСтся Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй (Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ 1.16 вносятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния, связанныС с устранСниСм ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Ρ… ошибок ΠΈ уязвимостСй).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния:

  • Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ grpc_pass Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΌ адрСс. Если адрСс ΡƒΠΊΠ°Π·Π°Π½ Π² Π²ΠΈΠ΄Π΅ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, имя ищСтся срСди описанных Π³Ρ€ΡƒΠΏΠΏ сСрвСров ΠΈ Ссли Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, Ρ‚ΠΎ опрСдСляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ resolver’Π°;
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ pipelined-запросов ΠΏΠΎ SSL-соСдинСнию ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ³ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚;
  • ВнСсСны исправлСния Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ debug_points ΠΏΡ€ΠΈ использовании ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/2.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ выпуск njs 0.3.8, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° языка JavaScript для Π²Π΅Π±-сСрвСра nginx. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ njs Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ стандарты ECMAScript ΠΈ позволяСт Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ возмоТности nginx ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ запросов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скриптов Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для опрСдСлСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов, формирования ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, динамичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ запроса/ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΈΠ»ΠΈ быстрого создания Π·Π°Π³Π»ΡƒΡˆΠ΅ΠΊ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² web-прилоТСниях.

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ nginx ​​Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Promise для r.subrequest ΠΈ внСсСны измСнСния Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ свойства r.parent. Π’Π°ΠΊΠΆΠ΅:

  • Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Promise;
  • Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Typed-массивов;
  • Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ArrayBuffer;
  • Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° символов;
  • Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ внСшнСС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ для JSON.stringify();
  • Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Object.is();
  • Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Object.setPrototypeOf();
  • Π²Π²Π΅Π΄Π΅Π½ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ объСдинСния (coalescing);
  • внСсСно исправлСниС Π² Object.getPrototypeOf() Π² соотвСтствии с спСцификациСй;
  • внСсСно исправлСниС Π² Object.prototype.valueOf() Π² соотвСтствии с спСцификациСй;
  • внСсСно исправлСниС Π² JSON.stringify() с Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹ΠΌΠΈ значСниями ΠΈ
    Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ замСнитСля;

  • исправлСн ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «in» согласно спСцификации;
  • внСсСно исправлСниС Π² Object.defineProperties() Π² соотвСтствии с
    с спСцификациСй;

  • внСсСно исправлСниС Π² Object.create() согласно спСцификации.
  • внСсСно исправлСниС Π² Number.prototype.toString(radix), ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Быстрой ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ;
  • исправлСны свойства экзСмпляра RegExp();
  • исправлСна ​​ошибка ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ