Krahu i lirimit të degës kryesore nginx 1.19.7 është formuar, në kuadrin e të cilit vazhdohet zhvillimi i mundësive të reja (në degën e stabilizuar 1.18, bëhen vetëm ndryshime që lidhen me eliminimin e gabimeve serioze dhe përhapjeve).
Ndryshimet kryesore:
- Kur procesi i punës konsumon lidhjet e lira, nginx tani mbyll jo vetëm lidhjet keepalive, por edhe lidhjet në gjendje pritjeje për mbylljen e soketit ("lingering close").
- Kodi i trajtimit të lidhjeve në HTTP/2 është afruar me zbatimin e HTTP/1.x. Mbështetja për cilësimet e veçanta "http2_recv_timeout", "http2_idle_timeout" dhe "http2_max_requests" është hequr në favor të drejtpërsëdrejti të përbashkëta "keepalive_timeout" dhe "keepalive_requests".
- Janë hequr cilësimet "http2_max_field_size" dhe "http2_max_header_size", për të cilat duhet përdorur "large_client_header_buffers".
Në të njëjtën kohë, është lëshuar njs 0.5.1, interpretuese e gjuhës JavaScript për serverin web nginx. Interpreti njs zbaton standardet e ECMAScript dhe lejon zgjerimin e mundësive të nginx për trajtimin 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 përmirësuar të trajtimit të kërkesave, formimin e konfigurimeve, gjenerimin dinamik të përgjigjeve, modifikimin e kërkesave/përgjigjeve ose krijimin e shpejtë të stendave me zgjidhje problemesh në aplikacionet web.
NĂ« versionin e ri Ă«shtĂ« shtuar drejta "js_header_filter", e cila lejon caktimin e njĂ« funksioni JavaScript pĂ«r filtrimin dhe ndryshimin e cilave do pĂ«rgjigjeve tĂ« titujve: 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 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 mund të përmendim publikimin serverë e aplikacioneve NGINX Unit 1.22, e cila ofron një zgjidhje për sigurimin e ekzekutimit të aplikacioneve web në gjuhë të ndryshme programimi (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js dhe Java). Nën menaxhimin e NGINX Unit, mund të ekzekutohen disa aplikacione në gjuhë të ndryshme programimi njëkohësisht, parametrat e nisjes së të cilëve mund të ndryshohen dinamikisht pa pasur nevojë për redaktimin e skedave të konfigurimit dhe ri-nisjen e tyre. Kodi është shkruar në gjuhën C dhe shpërndahet nën licencën Apache 2.0.
NĂ« numrin e ri tĂ« NGINX Unit, theksi ishte nĂ« pĂ«rmirĂ«simin e stabilitetit, zgjerimin e mjeteve pĂ«r testim dhe riparimin e gabimeve. NĂ« paketat e formuara pĂ«r Linux, janĂ« ndryshuar pĂ«rdoruesi dhe grupi nĂ«n tĂ« cilĂ«t funksionon NGINX Unit. NĂ« vend tĂ« nobody:nobody, proceset tani ekzekutohen nĂ«n njĂ« pĂ«rdorues tĂ« veçantĂ« unit nĂ« grupin unit. ĂshtĂ« siguruar pĂ«rputhshmĂ«ria me API Stream tĂ« objekteve ServerRequest dhe ServerResponse nga moduli Node.js. NĂ« opsionin 'path' pĂ«r aplikacionet Python Ă«shtĂ« lejuar pĂ«rcaktimi i disa katalogĂ«ve.
Burimi: opennet.ru
