แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™ nginx 1.21.2 แž“แžทแž„ njs 0.6.2

แžŸแžถแžแžถแžŸแŸ†แžแžถแž“แŸ‹แž“แŸƒ nginx 1.21.2 แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸแž‰แž•แŸ’แžŸแžถแž™ แžŠแŸ‚แž›แž€แŸ’แž“แžปแž„แž“แŸ„แŸ‡แž€แžถแžšแžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž˜แžปแžแž„แžถแžšแžแŸ’แž˜แžธแž“แŸ…แžแŸ‚แž”แž“แŸ’แž (แž“แŸ…แž€แŸ’แž“แžปแž„แžŸแŸ’แžšแž”แžŠแŸ‚แž›แž‚แžถแŸ†แž‘แŸ’แžšแžŸแžถแžแžถแžŠแŸ‚แž›แž˜แžถแž“แžŸแŸ’แžแŸแžšแž—แžถแž– 1.20 แž˜แžถแž“แžแŸ‚แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžŠแŸ‚แž›แž‘แžถแž€แŸ‹แž‘แž„แž“แžนแž„แž€แžถแžšแž›แžปแž”แž”แŸ†แž”แžถแžแŸ‹แž€แŸ†แž แžปแžŸแž’แŸ’แž„แž“แŸ‹แž’แŸ’แž„แžš แž“แžทแž„แž—แžถแž–แž„แžถแž™แžšแž„แž‚แŸ’แžšแŸ„แŸ‡แž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„)แŸ”

แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžŸแŸ†แžแžถแž“แŸ‹แŸ—แŸ–

  • แžŸแŸ†แžŽแžพ HTTP/1.0 แžŠแŸ‚แž›แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž…แŸ†แžŽแž„แž‡แžพแž„ HTTP/Transfer-Encoding แžแŸ’แžšแžผแžœแž”แžถแž“แžšแžถแžšแžถแŸ†แž„ (แž”แž„แŸ’แž แžถแž‰แž“แŸ…แž€แŸ’แž“แžปแž„แž€แŸ†แžŽแŸ‚ HTTP/1.1 protocol)แŸ”
  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžˆแžปแž cipher แž“แžถแŸ†แž…แŸแž‰แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แžˆแž”แŸ‹แŸ”
  • แž—แžถแž–แž†แž”แž‚แŸ’แž“แžถแž‡แžถแž˜แžฝแž™แž”แžŽแŸ’แžŽแžถแž›แŸแž™ OpenSSL 3.0 แžแŸ’แžšแžผแžœแž”แžถแž“แž’แžถแž“แžถแŸ”
  • แž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแž€แžถแžšแž•แŸ’แž‘แŸแžšแž”แž‹แž˜แž€แžแžถ "Auth-SSL-Protocol" แž“แžทแž„ "Auth-SSL-Cipher" แž‘แŸ…แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แž”แŸ’แžšแžผแž€แžŸแŸŠแžธแžŸแŸ†แž”แžปแžแŸ’แžšแŸ”
  • API แž…แž˜แŸ’แžšแŸ„แŸ‡แžšแžถแž„แž€แžถแž™แžŸแŸ†แžŽแžพแžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แž˜แžถแž“แž€แžถแžšแž”แžŽแŸ’แžŠแŸ„แŸ‡แžขแžถแžŸแž“แŸ’แž“แž“แŸƒแž‘แžทแž“แŸ’แž“แž“แŸแž™แžŠแŸ‚แž›แž”แžถแž“แžŠแŸ†แžŽแžพแžšแž€แžถแžšแŸ”
  • แž“แŸ…แž–แŸแž›แž•แŸ’แž‘แžปแž€แžœแžทแž‰แŸ’แž‰แžถแž”แž“แž”แžแŸ’แžšแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž€แž˜แŸ’แžšแžทแžแžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–แžŠแŸ‚แž›แž‚แžถแŸ†แž‘แŸ’แžšแžŠแŸ„แž™แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž–แžธ OpenSSL 1.1.0 แž“แžทแž„แž”แžถแž“แž”แž‰แŸ’แž‡แžถแž€แŸ‹แžแžถแž˜แžšแž™แŸˆแž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš โ€œ@SECLEVEL=Nโ€ แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแžŽแŸ‚แž“แžถแŸ† ssl_ciphers แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ‚แžแž˜แŸ’แžšแžผแžœแŸ”
  • แž€แžถแžšแž–แŸ’แž™แžฝแžšแžแŸแžšแžŠแŸ‚แž›แž”แžถแž“แž€แžพแžแžกแžพแž„แž“แŸ…แž–แŸแž›แž”แž„แŸ’แž€แžพแžแž€แžถแžšแž—แŸ’แž‡แžถแž”แŸ‹ SSL แž‘แŸ…แž€แžถแž“แŸ‹ backends แž“แŸ…แž€แŸ’แž“แžปแž„ stream แž“แžทแž„ gRPC modules แŸ”
  • แž”แž‰แŸ’แž แžถแž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแžŸแžšแžŸแŸแžšแžแžฝแžŸแŸ†แžŽแžพแž‘แŸ…แžแžถแžŸแž“แŸ…แž–แŸแž›แž”แŸ’แžšแžพ HTTP/2 แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแžŠแŸ‚แž›แž‚แŸ’แž˜แžถแž“แž…แŸ†แžŽแž„แž‡แžพแž„ "แž”แŸ’แžšแžœแŸ‚แž„แž˜แžถแžแžทแž€แžถ" แž“แŸ…แž€แŸ’แž“แžปแž„แžŸแŸ†แžŽแžพแžแŸ’แžšแžผแžœแž”แžถแž“แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แŸ”

แž€แŸ’แž“แžปแž„แž–แŸแž›แž‡แžถแž˜แžฝแž™แž‚แŸ’แž“แžถแž“แŸ„แŸ‡ njs 0.6.2 แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸแž‰แž•แŸ’แžŸแžถแž™ แžŠแŸ‚แž›แž‡แžถแžขแŸ’แž“แž€แž”แž€แž”แŸ’แžšแŸ‚ JavaScript แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž”แžŽแŸ’แžแžถแž‰ nginx แŸ” แžขแŸ’แž“แž€แž”แž€แž”แŸ’แžšแŸ‚ njs แžขแž“แžปแžœแžแŸ’แžแžŸแŸ’แžแž„แŸ‹แžŠแžถแžš ECMAScript แž“แžทแž„แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž–แž„แŸ’แžšแžธแž€แžŸแž˜แžแŸ’แžแž—แžถแž–แžšแž”แžŸแŸ‹ nginx แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ†แžŽแžพแžŠแŸ„แž™แž”แŸ’แžšแžพแžŸแŸ’แž‚แŸ’แžšแžธแž”แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แŸ” แžŸแŸ’แž‚แŸ’แžšแžธแž”แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž“แŸ…แž€แŸ’แž“แžปแž„แžฏแž€แžŸแžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แžŠแžพแž˜แŸ’แž”แžธแž€แŸ†แžŽแžแŸ‹แžแž€แŸ’แž€แžœแžทแž‡แŸ’แž‡แžถแž€แž˜แŸ’แžšแžทแžแžแŸ’แž–แžŸแŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ†แžŽแžพ แž”แž„แŸ’แž€แžพแžแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’ แž”แž„แŸ’แž€แžพแžแž€แžถแžšแž†แŸ’แž›แžพแž™แžแž”แž‡แžถแž›แž€แŸ’แžแžŽแŸˆแžแžถแž˜แžœแž“แŸ’แž แž€แŸ‚แž”แŸ’แžšแŸ‚แžŸแŸ†แžŽแžพ/แž€แžถแžšแž†แŸ’แž›แžพแž™แžแž” แžฌแž”แž„แŸ’แž€แžพแž stubs แž™แŸ‰แžถแž„แž†แžถแž”แŸ‹แžšแž แŸแžŸแžŠแžพแž˜แŸ’แž”แžธแžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แž‰แŸ’แž แžถแž“แŸ…แž€แŸ’แž“แžปแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸแž แž‘แŸ†แž–แŸแžšแŸ” แž“แŸ…แž€แŸ’แž“แžปแž„แž€แŸ†แžŽแŸ‚แžแŸ’แž˜แžธ แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžš Promise.all(), Promise.allSettled(), Promise.any() แž“แžทแž„ Promise.race() แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแžŸแž“แŸ’แž™แžถแŸ” แž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžœแžแŸ’แžแžป AggregateError แŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹