Rilaxx ta' nginx 1.19.7, njs 0.5.1 u NGINX Unit 1.22.0

Il-fergħa ewlenija ta 'nginx 1.19.7 ġiet rilaxxata, li fiha l-iżvilupp ta' karatteristiċi ġodda jkompli (fil-fergħa stabbli appoġġjata parallela 1.18, isiru biss bidliet relatati mal-eliminazzjoni ta 'żbalji serji u vulnerabbiltajiet).

Bidliet ewlenin:

  • Meta proċess ta 'ħaddiem jispiċċa mingħajr konnessjonijiet, nginx issa jagħlaq mhux biss konnessjonijiet keepalive, iżda wkoll konnessjonijiet jistennew li s-socket jagħlaq ("lingering close").
  • Il-kodiċi tal-ipproċessar tal-konnessjoni f'HTTP/2 huwa qrib l-implimentazzjoni HTTP/1.x. L-appoġġ għas-settings individwali "http2_recv_timeout", "http2_idle_timeout" u "http2_max_requests" twaqqaf favur id-direttivi ġenerali "keepalive_timeout" u "keepalive_requests".
  • Is-settings "http2_max_field_size" u "http2_max_header_size" tneħħew u "large_client_header_buffers" għandhom jintużaw minflok.

Fl-istess ħin, njs 0.5.1 ġie rilaxxat, interpretu JavaScript għas-server tal-web nginx. L-interpretu njs jimplimenta l-istandards ECMAScript u jippermettilek tespandi l-abbiltà ta 'nginx li tipproċessa talbiet billi tuża skripts fil-konfigurazzjoni. L-iskripts jistgħu jintużaw f'fajl ta 'konfigurazzjoni biex jiddefinixxu loġika avvanzata għall-ipproċessar ta' talbiet, jiġġeneraw konfigurazzjoni, jiġġeneraw rispons b'mod dinamiku, jimmodifikaw talba/rispons, jew joħolqu malajr stubs biex isolvu problemi fl-applikazzjonijiet tal-web.

Il-verżjoni l-ġdida żżid id-direttiva "js_header_filter", li tippermettilek li tissettja funzjoni JavaScript għall-iffiltrar u l-bidla ta 'headers ta' rispons arbitrarju: js_import foo.js; post / { js_header_filter foo.filter; proxy_pass http://127.0.0.1:8081/; } foo.js: filtru tal-funzjoni (r) { var cookies = r.headersOut['Set-Cookie']; var len = r.args.len ? Numru(r.args.len): 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } esportazzjoni default {filtru};

Miżjud ukoll il-metodu ngx.fetch(), li jimplimenta l-API Fetch, li tipprovdi funzjonalità tal-klijent HTTP. Il-metodu jappoġġja l-ipproċessar tal-għażliet tal-body, headers, buffer_size u max_response_body_size. L-oġġett Response ritornat jappoġġja metodi arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), tip u url, u l-oġġett Header jappoġġja get(), getAll() u has() metodi . funzjoni fetch(r) { ngx.fetch('http://nginx.org/') .then(reply => reply.text()) .then(body => r.return(200, body)) .catch (e => r.return(501, e.messagg)); }

Tista 'tinnota wkoll il-pubblikazzjoni tas-server tal-applikazzjoni NGINX Unit 1.22, li joffri soluzzjoni għat-tħaddim tal-applikazzjonijiet tal-web f'diversi lingwi ta' programmar (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js u Java). L-Unità NGINX tista 'tħaddem simultanjament applikazzjonijiet multipli f'lingwi ta' programmar differenti, li l-parametri tat-tnedija tagħhom jistgħu jinbidlu b'mod dinamiku mingħajr il-ħtieġa li jeditjaw fajls ta 'konfigurazzjoni u jerġgħu jibdew. Il-kodiċi huwa miktub f'Ċ u mqassam taħt il-liċenzja Apache 2.0.

Ir-rilaxx il-ġdid tal-Unità NGINX iffokat fuq it-titjib tal-istabbiltà, l-espansjoni tal-għodod tal-ittestjar, u l-iffissar tal-bugs. Fil-pakketti ġġenerati għal Linux, l-utent u l-grupp li taħthom taħdem NGINX Unit ġew mibdula. Minflok ħadd: ħadd, il-proċessi issa jaħdmu taħt l-unità tal-utent individwali fil-grupp tal-unitajiet. Kompatibilità żgurata mal-Stream API tal-oġġetti ServerRequest u ServerResponse mill-modulu Node.js. L-għażla "mogħdija" għall-applikazzjonijiet Python tippermetti li jiġu speċifikati direttorji multipli.

Sors: opennet.ru

Żid kumment