ĂshtĂ« formuar njĂ« version i degĂ«s kryesore tĂ« nginx 1.19.7, nĂ« tĂ« cilin vazhdon zhvillimi i mundĂ«sive tĂ« reja (nĂ« degĂ«n e qĂ«ndrueshme 1.18, bĂ«hen vetĂ«m ndryshime qĂ« lidhen me eliminimin e gabimeve tĂ« rĂ«nda dhe dobĂ«sive).
Ndryshimet kryesore:
- Kur procesi punues nuk ka lidhje tĂ« lira, nginx tani mbyll jo vetĂ«m lidhjet keepalive, por edhe ato nĂ« gjendje tĂ« pritjes pĂ«r mbylljen e socket-it (âlingering closeâ).
- Kodi i përpunimit të lidhjeve në HTTP/2 është afruar me zbatimin e HTTP/1.x. Mbështetje për cilësimet e veçanta «http2_recv_timeout», «http2_idle_timeout» dhe «http2_max_requests» është ndalur në favor të direktivave të përbashkëta «keepalive_timeout» dhe «keepalive_requests».
- Janë hequr cilësimet «http2_max_field_size» dhe «http2_max_header_size», në vend të të cilave duhet të përdoren «large_client_header_buffers».
Në të njëjtën kohë, u publikua njs 0.5.1, interpretuese për gjuhën JavaScript për web nginx. Interpretuesi njs implementon standardet ECMAScript dhe lejon zgjerimin e mundësive të nginx për përpunimin e kërkesave përmes skripteve në konfigurim. Skriptet mund të përdoren në skedarin e konfigurimit për të përcaktuar logjikën e zgjeruar të përpunimit të kërkesave, krijimin e konfiguracionit, gjenerimin dinamik të përgjigjeve, modifikimin e kërkesave/përgjigjeve ose krijimin e shënimeve të shpejta për zgjidhjen e problemeve në aplikacionet web.
NĂ« versionin e ri Ă«shtĂ« shtuar direktiva «js_header_filter», e cila lejon caktimin e njĂ« funksioni JavaScript pĂ«r filtrimin dhe ndryshimin e titujve tĂ« pĂ«rgjigjeve tĂ« rastĂ«sishme: js_import foo.js; location / { 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 ? Number(r.args.len) : 0; r.headersOut[âSet-Cookieâ] = cookies.filter(v=>v.length > len); } export default {filter};
Gjithashtu është shtuar metoda ngx.fetch(), e cila implementon API-në Fetch, e cila ofron funksionalitetin e klientit HTTP. Metoda mbështet trajtimin e opsioneve body, headers, buffer_size dhe max_response_body_size. Në objektin e kthyer Response mbështeten metodat arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type dhe url, ndërsa në objektin Header mbështeten metodat get(), getAll() dhe has(). function fetch(r) { ngx.fetch('http://nginx.org/') .then(reply => reply.text()) .then(body => r.return(200, body)) .catch(e => r.return(501, e.message)); }
Gjithashtu vlen të përmendet publikimi serverit i aplikacioneve NGINX Unit 1.22, i cili ofron zgjidhje për ekzekutimin e aplikacioneve web në gjuhë të ndryshme programuese (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js dhe Java). Nën menaxhimin e NGINX Unit, mund të ekzekutohen njëkohësisht disa aplikacione në gjuhë të ndryshme programuese, parametrat e nisjes të të cilave mund të ndryshohen dinamikisht pa pasur nevojë të redaktohen skedarët e konfigurimit dhe të rinisën. Kodi është shkruar në gjuhën C dhe shpërndahet nën licencën Apache 2.0.
NĂ« edicionin e ri tĂ« NGINX Unit, vĂ«mendja kryesore ishte pĂ«rmirĂ«simi i stabilitetit, zgjerimi i mjeteve pĂ«r testim dhe rregullimi i gabimeve. NĂ« paketat qĂ« krijohen pĂ«r Linux, Ă«shtĂ« ndryshuar pĂ«rdoruesi dhe grupi nĂ«n tĂ« cilĂ«t ekzekutohet NGINX Unit. NĂ« vend tĂ« nobody:nobody, proceset tani kryhen nĂ«n njĂ« pĂ«rdorues tĂ« veçantĂ« unit nĂ« grupin unit. ĂshtĂ« siguruar kompatibilitet me API Stream tĂ« objekteve ServerRequest dhe ServerResponse nga moduli Node.js. NĂ« opsionin "path" pĂ«r aplikacionet Python lejohet specifikimi i disa katalogĂ«ve.
Burimi: opennet.ru
