Die hooftak van nginx 1.19.7 is vrygestel, waarbinne die ontwikkeling van nuwe kenmerke voortgaan (in die parallel ondersteunde stabiele tak 1.18 word slegs veranderinge gemaak wat verband hou met die uitskakeling van ernstige foute en kwesbaarhede).
Belangrikste veranderinge:
- Wanneer 'n werkerproses sonder vrye verbindings opraak, sluit nginx nou nie net keepalive-verbindings nie, maar ook verbindings wat wag vir die sok om toe te maak ("langlende toe").
- Die verbindingsverwerkingskode in HTTP/2 is naby die HTTP/1.x-implementering. Ondersteuning vir die individuele instellings "http2_recv_timeout", "http2_idle_timeout" en "http2_max_requests" is gestaak ten gunste van die algemene riglyne "keepalive_timeout" en "keepalive_requests".
- Die instellings "http2_max_field_size" en "http2_max_header_size" is verwyder en "large_client_header_buffers" moet eerder gebruik word.
Terselfdertyd, njs 0.5.1, 'n JavaScript-interpreteerder vir webbediener nginx. Die njs-interpreteerder implementeer ECMAScript-standaarde en laat jou toe om nginx se versoekverwerkingsvermoëns uit te brei deur konfigurasieskripte te gebruik. Skripte kan in die konfigurasielêer gebruik word om gevorderde versoekverwerkingslogika te definieer, konfigurasies te genereer, antwoorde dinamies te genereer, versoeke/antwoorde te wysig, of vinnig stompies te skep om probleme in webtoepassings op te los.
Die nuwe weergawe voeg die "js_header_filter"-riglyn by, wat jou toelaat om 'n JavaScript-funksie op te stel vir die filter en verandering van arbitrêre antwoordopskrifte: js_import foo.js; ligging / { js_header_filter foo.filter; proxy_pass http://127.0.0.1:8081/; } foo.js: function filter(r) { var cookies = r.headersOut['Set-Cookie']; var len = r.args.len ? Getal(r.args.len) : 0; r.headersOut['Set-Cookie'] = koekies.filter(v=>v.length > len); } uitvoer verstek {filter};
Ook bygevoeg is die ngx.fetch() metode, wat die Fetch API implementeer, wat HTTP-kliëntfunksionaliteit verskaf. Die metode ondersteun verwerking van liggaam, koptekste, buffer_size en max_response_body_size opsies. Die teruggekeerde Response-objek ondersteun arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), tipe- en url-metodes, en die Header-objek ondersteun get(), getAll() en has() metodes. funksie haal(r) { ngx.fetch('http://nginx.org/') .then(reply => reply.text()) .then(body => r.return(200, body)) .catch (e => r.return(501, e.boodskap)); }
Jy kan ook die publikasie merk bediener NGINX Eenheid 1.22, 'n oplossing vir die uitvoering van webtoepassings wat in verskeie programmeertale geskryf is (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js en Java). NGINX Eenheid kan gelyktydig verskeie toepassings wat in verskillende tale geskryf is, uitvoer, en hul bekendstellingsparameters kan dinamies verander word sonder dat konfigurasielêers gewysig of herbegin hoef te word. Die kode is in C geskryf en word gelisensieer onder die Apache 2.0-lisensie.
Die nuwe NGINX Unit-vrystelling het gefokus op die verbetering van stabiliteit, die uitbreiding van toetsvermoëns en die regstel van foute. Linux Die gebruiker en groep waaronder NGINX Unit in pakkette loop, is verander. In plaas van nobody:nobody, loop prosesse nou onder 'n aparte gebruiker met die naam unit in die unit-groep. Versoenbaarheid met die Stream API vir ServerRequest- en ServerResponse-objekte van die Node.js-module is verseker. Verskeie gidse kan nou in die "pad"-opsie vir Python-toepassings gespesifiseer word.
Bron: opennet.ru
