ืฉื—ืจื•ืจ ืฉืœ 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. ืงื•ื“ ื”ืคืจื•ื™ืงื˜ ื›ืชื•ื‘ ื‘-C ื•ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ 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.
  • ื‘ื™ืฆื•ืขื™ ื”ืฉืงืช ืชืฆื•ืจื•ืช ืขื ืžืกืคืจ ืจื‘ ืฉืœ ื”ื ื—ื™ื•ืช "ืžื™ืงื•ื" ืฉื•ืคืจื•.
  • ืชื•ืงืŸ ืงืจื™ืกื” ืฉื”ืชืจื—ืฉื” ื‘ืขืช ื ื™ืกื™ื•ืŸ ืœื”ืฉืชืžืฉ ื‘-HTTP/2 ืœืœื SSL.
  • ืชื•ืงืŸ ืขื™ื‘ื•ื“ ืฉื’ื•ื™ ืฉืœ ื”ื›ื•ืชืจืช "ืกื˜ื˜ื•ืก" ืฉื”ื•ื—ื–ืจื” ืขืœ ื™ื“ื™ ื”ืงืฆื” ื”ืขื•ืจืคื™ ืขื ื˜ืงืกื˜ ื”ืกื‘ืจ ืจื™ืง.
  • ืชื•ืงืŸ ื“ืœื™ืคืช ื–ื™ื›ืจื•ืŸ ื‘ืžื”ืœืš ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืžื—ื“ืฉ ืฉื”ืชืจื—ืฉื” ื‘ืขืช ื‘ื ื™ื™ื” ืขื ืกืคืจื™ื™ืช PCRE2.
  • ื”ื•ืฆื’ ื—ืœืง ื’ื“ื•ืœ ืฉืœ ืชื™ืงื•ื ื™ื ื•ืฉื™ืคื•ืจื™ื ื”ืงืฉื•ืจื™ื ืœืชืžื™ื›ื” ื‘ืคืจื•ื˜ื•ืงื•ืœ HTTP/3.

ื‘ืžืงื‘ื™ืœ, ืฉื•ื—ืจืจ njs 0.8.2, ืžืชื•ืจื’ืžืŸ JavaScript ืขื‘ื•ืจ ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ nginx. ืžืชื•ืจื’ืžืŸ njs ืžื™ื™ืฉื ืชืงื ื™ ECMAScript ื•ืžืืคืฉืจ ืœืš ืœื”ืจื—ื™ื‘ ืืช ื”ื™ื›ื•ืœืช ืฉืœ nginx ืœืขื‘ื“ ื‘ืงืฉื•ืช ื‘ืืžืฆืขื•ืช ืกืงืจื™ืคื˜ื™ื ื‘ืชืฆื•ืจื”. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืกืงืจื™ืคื˜ื™ื ื‘ืงื•ื‘ืฅ ืชืฆื•ืจื” ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืœื•ื’ื™ืงื” ืžืชืงื“ืžืช ืœืขื™ื‘ื•ื“ ื‘ืงืฉื•ืช, ื™ืฆื™ืจืช ืชืฆื•ืจื”, ื™ืฆื™ืจื” ื“ื™ื ืžื™ืช ืฉืœ ืชื’ื•ื‘ื”, ืฉื™ื ื•ื™ ื‘ืงืฉื”/ืชื’ื•ื‘ื”, ืื• ื™ืฆื™ืจื” ืžื”ื™ืจื” ืฉืœ ืงื˜ืขื™ื ืœืคืชืจื•ืŸ ื‘ืขื™ื•ืช ื‘ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜. ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืžื•ืกื™ืคื” ืื•ื‘ื™ื™ืงื˜ ืžืกื•ืฃ ื”ืžืกืคืง ืืช ื”ืžืชื•ื“ื•ืช error(), info(), log(), time(), timeEnd() ื•- warn(). ืฉื™ื˜ืช fs.existsSync() ื ื•ืกืคื” ืœืžื•ื“ื•ืœ fs.

ื›ืžื• ื›ืŸ, ื ื™ืชืŸ ืœืฆื™ื™ืŸ ืืช ืคืจืกื•ื ืฉืจืช ื”ื™ื™ืฉื•ืžื™ื NGINX Unit 1.31.1, ื”ื ื•ืชืŸ ืžืขื ื” ืœื”ืคืขืœืช ืืคืœื™ืงืฆื™ื•ืช ืื™ื ื˜ืจื ื˜ ื‘ืฉืคื•ืช ืชื›ื ื•ืช ืฉื•ื ื•ืช (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ื•-Java). NGINX Unit ื™ื›ื•ืœื” ืœื”ืจื™ืฅ ื‘ื• ื–ืžื ื™ืช ืžืกืคืจ ื™ื™ืฉื•ืžื™ื ื‘ืฉืคื•ืช ืชื›ื ื•ืช ืฉื•ื ื•ืช, ืฉืืช ืคืจืžื˜ืจื™ ื”ื”ืฉืงื” ืฉืœื”ืŸ ื ื™ืชืŸ ืœืฉื ื•ืช ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ืœืœื ืฆื•ืจืš ืœืขืจื•ืš ืงื‘ืฆื™ ืชืฆื•ืจื” ื•ืœื”ืคืขื™ืœ ืžื—ื“ืฉ. ื‘ื ื•ืกืฃ ืœืชื™ืงื•ื ื™ ื‘ืื’ื™ื, ื”ื’ืจืกื” ื”ื—ื“ืฉื” ื‘ืžื•ื“ื•ืœ Wasm ืžืืคืฉืจืช ื˜ืขื™ื ืช ื ืชื•ื ื™ื ื’ื“ื•ืœื™ื ืž-4 ื’'ื™ื’ื”-ื‘ื™ื™ื˜, ื•ื‘ืขืช ืชื’ื•ื‘ื” ืืคืฉืจ ืœื”ื’ื“ื™ืจ ืงื•ื“ื™ ืกื˜ื˜ื•ืก HTTP.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”