ИздаванС на nginx 1.17.9 и njs 0.3.9

БъздадСно основно ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ nginx 1.17.9, Π² контСкста Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ (Π² ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π°Ρ‚Π° стабилна вСрсия 1.16 сС внасят само ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с отстраняванСто Π½Π° сСриозни Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ уязвимости).

Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π—Π°Π±Ρ€Π°Π½Π΅Π½ΠΎ посочванСто Π½Π° няколко Ρ€Π΅Π΄Π° 'Host' Π²
    Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Π½Π° заявката;
  • ΠšΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π° Π΅ Π³Ρ€Π΅ΡˆΠΊΠ°, ΠΏΡ€ΠΈ която nginx ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°ΡˆΠ΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅
    'Transfer-Encoding' Π² Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Π½Π° заявката;
  • НаправСни са ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ, прСдотвратяващи ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° сокСти ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/2;
  • ΠžΡ‚ΡΡ‚Ρ€Π°Π½Π΅Π½ Π΅ срив (segmentation fault) Π½Π° работния процСс, проявяващ сС ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° OCSP stapling;
  • НаправСни са ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π° ngx_http_mp4_module;
  • РСшСн Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² случаитС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΈ прСнасочванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ с ΠΊΠΎΠ΄ 494 с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° 'error_page' моТСшС Π΄Π° сС Π²ΡŠΡ€Π½Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ с ΠΊΠΎΠ΄ 494 вмСсто 400;
  • ΠžΡ‚ΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈ са изтичания Π½Π° сокСти ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° подзапроси Π² ΠΌΠΎΠ΄ΡƒΠ»Π° njs ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° aio.

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

Π’ Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π° njs Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈ заявки Π² r.subrequest(). ΠžΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈΡ‚Π΅ подзапроси сС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°Ρ‚. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ подзапроси, ΠΎΡ‚Π΄Π΅Π»Π΅Π½ подзапрос ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС създадСн Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π°. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°:

  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ API Promises Π·Π° ΠΌΠΎΠ΄ΡƒΠ»Π° 'fs';
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π° 'fs' са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ access(), symlink(), unlink(),
    realpath() ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ;
  • Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈ са масиви с Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°;
  • НаправСни са подобрСния Π² lexer;
  • НаправСна Π΅ корСкция Π² ΡΡŠΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈΡ‚Π΅ трасировки (backtraces).
    слСди;
  • ΠšΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ΠΈ са callback-Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π° 'fs';
  • НаправСни са ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π² Object.getOwnPropertySymbols();
  • ΠžΡ‚ΡΡ‚Ρ€Π°Π½Π΅Π½ΠΎ Π΅ ΠΏΡ€Π΅Π»ΠΈΠ²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚ Π² njs_json_append_string();
  • НаправСна Π΅ корСкция Π² encodeURI() ΠΈ decodeURI() Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ със спСцификацията;
  • НаправСна Π΅ корСкция Π² Number.prototype.toPrecision();
  • НаправСна Π΅ корСкция Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π² JSON.stringify();
  • НаправСна Π΅ корСкция Π² JSON.stringify() с ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Number() ΠΈ String();
  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½ΠΎ Π΅ Π΅ΠΊΡ€Π°Π½Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Unicode символи Π² JSON.stringify() Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅
    със спСцификацията;
  • НаправСна Π΅ корСкция Π² ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π½Π° Π½Π΅-собствСни ΠΌΠΎΠ΄ΡƒΠ»ΠΈ;
  • НаправСна Π΅ корСкция Π² njs.dump() с инстанция Π½Π° Date() Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

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

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