ื’ืจืกืื•ืช ื—ื“ืฉื•ืช ืฉืœ nginx 1.25.5 ื•ืคื•ืจืง FreeNginx 1.26.0

ื”ืขื ืฃ ื”ืจืืฉื™ ืฉืœ nginx 1.25.5 ืฉื•ื—ืจืจ, ืฉื‘ืชื•ื›ื• ื ืžืฉืš ื”ืคื™ืชื•ื— ืฉืœ ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช. ื”ืขื ืฃ ื”ื™ืฆื™ื‘ ื”ืžืชื•ื—ื–ืง ื‘ืžืงื‘ื™ืœ 1.24.x ืžื›ื™ืœ ืจืง ืฉื™ื ื•ื™ื™ื ื”ืงืฉื•ืจื™ื ืœื—ื™ืกื•ืœ ื‘ืื’ื™ื ื•ืคื’ื™ืขื•ื™ื•ืช ื—ืžื•ืจื•ืช. ื‘ืขืชื™ื“, ื‘ื”ืชื‘ืกืก ืขืœ ื”ืขื ืฃ ื”ืจืืฉื™ 1.25.x, ื™ื•ื•ืฆืจ ืขื ืฃ ื™ืฆื™ื‘ 1.26. ืงื•ื“ ื”ืคืจื•ื™ืงื˜ ื›ืชื•ื‘ ื‘-C ื•ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ BSD.

ื‘ื™ืŸ ื”ืฉื™ื ื•ื™ื™ื:

  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืฉืจืชื™ื ื•ื™ืจื˜ื•ืืœื™ื™ื ืœืžื•ื“ื•ืœ ื”ื–ืจื, ืฉืชืฆื•ืจืชื• ืžื•ื’ื“ืจืช ื‘ื’ื•ืฉ "ืฉืจืช { ... }" ื‘ืืžืฆืขื•ืช ื”ื”ื ื—ื™ื” server_name. ืฉืจืช { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
  • ื ื•ืกืฃ ืžื•ื“ื•ืœ ื—ื“ืฉ ngx_stream_pass_module, ืฉื ื•ืขื“ ืœื”ืขื‘ื™ืจ ื—ื™ื‘ื•ืจื™ื ืฉื”ืชืงื‘ืœื• ื™ืฉื™ืจื•ืช ืœื›ืœ ืฉืงืข ื”ืื–ื ื” ื”ืžืฉื•ื™ืš ืœืžื•ื“ื•ืœื™ื ื›ื’ื•ืŸ http, stream ื•ื“ื•ืืจ. stream { ืฉืจืช { ื”ืื–ื ื” 12345 ssl; ssl_certificate domain.crt; ssl_certificate_key domain.key; ืžืขื‘ืจ 127.0.0.1:8000; } }
  • ื”ื•ืจืืช ื”ื”ืื–ื ื” ืฉืœ ืžื•ื“ื•ืœ ื”ื–ืจื ืžื™ื™ืฉืžืช ืชืžื™ื›ื” ื‘ืคืจืžื˜ืจื™ื "ื“ื—ื•ื™" (ืžืืคืฉืจ ืงื‘ืœื” ื“ื—ื™ื™ืช), "accept_filter" (ืžืกื ืŸ ื—ื™ื‘ื•ืจ ื ื›ื ืก ืžื•ื—ืœ ืœืคื ื™ ืงืจื™ืื” ืœืคื•ื ืงืฆื™ื™ืช accept) ื•-"setfib" (ื”ื’ื“ืจืช ื˜ื‘ืœืช ื”ื ื™ืชื•ื‘).
  • ืขื‘ื•ืจ ื›ืžื” ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช, ื™ื•ืฉืžื” ืชืžื™ื›ื” ื‘ืงื‘ื™ืขืช ื’ื•ื“ืœ ื”ื‘ืœื•ืง (ืงื• ื”ืžื˜ืžื•ืŸ) ื”ืžืฉืžืฉ ืœื”ืขื‘ืจืช ื ืชื•ื ื™ื ื‘ื™ืŸ ืžื˜ืžื•ืŸ ื”-CPU ืœื–ื™ื›ืจื•ืŸ.
  • ื‘ืžืขืจื›ื•ืช Apple Silicon, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืžื ื”ืœ ื”ื—ื‘ื™ืœื•ืช Homebrew.
  • ื‘ืขื™ื•ืช ืงื•ืžืคื™ืœืฆื™ื” ืฆื•ืœื‘ืช ืขื‘ื•ืจ Windows ื ืคืชืจื•.
  • ืชื•ืงืŸ ื‘ืื’ ืฉื’ืจื ืœืกื’ื™ืจืช ื—ื™ื‘ื•ืจื™ื ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืžืฆื‘ 0-RTT ื‘ืคืจื•ื˜ื•ืงื•ืœ QUIC.

ื‘ื ื•ืกืฃ, ืื ื• ื™ื›ื•ืœื™ื ืœืฆื™ื™ืŸ ืืช ื”ืคืจืกื•ื ืฉืœ ื’ืจืกื” ื™ืฆื™ื‘ื” ืฉืœ ืคืจื•ื™ืงื˜ FreeNginx 1.26.0, ื”ืžืคืชื— ืžื–ืœื’ ืฉืœ Nginx. ื”ืžื–ืœื’ ืžืคื•ืชื— ืขืœ ื™ื“ื™ Maxim Dunin, ืื—ื“ ืžืžืคืชื—ื™ Nginx ื”ืžืจื›ื–ื™ื™ื. FreeNginx ืžืžื•ืงืžืช ื›ืคืจื•ื™ืงื˜ ืœืœื ืžื˜ืจื•ืช ืจื•ื•ื— ื”ืžืกืคืง ืคื™ืชื•ื— ืฉืœ ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ Nginx ืœืœื ื”ืชืขืจื‘ื•ืช ืชืื’ื™ื“ื™ืช. ืžื”ื“ื•ืจื” 1.26.0 ืžืกื•ืžื ืช ื›ื’ืจืกื” ื™ืฆื™ื‘ื”, ื”ื›ื•ืœืœืช ืฉื™ื ื•ื™ื™ื ื•ืชื™ืงื•ื ื™ื ืžื”ื’ืจืกืื•ืช ืฉืœ ื”ืกื ื™ืฃ ื”ืจืืฉื™ ืฉืœ Nginx 1.25. ื‘ื™ืŸ ื”ื™ืชืจ, FreeNginx 1.26.0 ื›ื•ืœืœ ืชืžื™ื›ื” ื ื™ืกื™ื•ื ื™ืช ื‘ืคืจื•ื˜ื•ืงื•ืœ HTTP/3, ืฉื™ืคื•ืจื™ื ืœืžื ื™ืขืช ื”ืชืงืคื•ืช DoS ื•ืชื™ืงื•ื ื™ื ื”ืงืฉื•ืจื™ื ืœืขื™ื‘ื•ื“ I/O ืืกื™ื ื›ืจื•ื ื™.

ื‘ืžืงื‘ื™ืœ, ืฉื•ื—ืจืจ njs 0.8.4, ืžืชื•ืจื’ืžืŸ JavaScript ืขื‘ื•ืจ ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ nginx. ืžืชื•ืจื’ืžืŸ njs ืžื™ื™ืฉื ืชืงื ื™ ECMAScript ื•ืžืืคืฉืจ ืœืš ืœื”ืจื—ื™ื‘ ืืช ื”ื™ื›ื•ืœืช ืฉืœ nginx ืœืขื‘ื“ ื‘ืงืฉื•ืช ื‘ืืžืฆืขื•ืช ืกืงืจื™ืคื˜ื™ื ื‘ืชืฆื•ืจื”. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืกืงืจื™ืคื˜ื™ื ื‘ืงื•ื‘ืฅ ืชืฆื•ืจื” ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืœื•ื’ื™ืงื” ืžืชืงื“ืžืช ืœืขื™ื‘ื•ื“ ื‘ืงืฉื•ืช, ื™ืฆื™ืจืช ืชืฆื•ืจื”, ื™ืฆื™ืจื” ื“ื™ื ืžื™ืช ืฉืœ ืชื’ื•ื‘ื”, ืฉื™ื ื•ื™ ื‘ืงืฉื”/ืชื’ื•ื‘ื”, ืื• ื™ืฆื™ืจื” ืžื”ื™ืจื” ืฉืœ ืงื˜ืขื™ื ืœืคืชืจื•ืŸ ื‘ืขื™ื•ืช ื‘ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜. ื‘ื’ืจืกื” ื”ื—ื“ืฉื”: ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืžื ื•ืข QuickJS JavaScript ืœ-CLI; ื”ื•ืกื™ืคื” ืืช ื”ื™ื›ื•ืœืช ืœื”ื’ื“ื™ืจ ืืช ื›ื•ืชืจืช ื”ืฉืจืช; ื”ื˜ืžื™ืข ื‘ื“ื™ืงื” ืœืฉื›ืคื•ืœ ืฉืœ ืžืฉืชื ื™ื ืฉื”ื•ื’ื“ืจื• ื“ืจืš js_set.

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

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