Lëshimi i nginx 1.19.7, njs 0.5.1 dhe NGINX Unit 1.22.0

Është lëshuar dega kryesore e nginx 1.19.7, brenda së cilës vazhdon zhvillimi i veçorive të reja (në degën e qëndrueshme të mbështetur paralelisht 1.18, bëhen vetëm ndryshime që lidhen me eliminimin e gabimeve dhe dobësive serioze).

Ndryshimet kryesore:

  • Kur një proces pune i mbaron lidhjet e lira, nginx tani mbyll jo vetëm lidhjet mbajtëse, por edhe lidhjet që presin mbylljen e prizës (“mbyllja e mbylljes”).
  • Kodi i përpunimit të lidhjes në HTTP/2 është afër zbatimit të HTTP/1.x. Mbështetja për cilësimet individuale "http2_recv_timeout", "http2_idle_timeout" dhe "http2_max_requests" është ndërprerë në favor të direktivave të përgjithshme "keepalive_timeout" dhe "keepalive_requests".
  • Cilësimet "http2_max_field_size" dhe "http2_max_header_size" janë hequr dhe në vend të tyre duhet të përdoren "large_client_header_buffers".

Në të njëjtën kohë, u lëshua njs 0.5.1, një përkthyes JavaScript për ueb serverin nginx. Përkthyesi njs zbaton standardet ECMAScript dhe ju lejon të zgjeroni aftësinë e nginx për të përpunuar kërkesat duke përdorur skriptet në konfigurim. Skriptet mund të përdoren në një skedar konfigurimi për të përcaktuar logjikën e avancuar për përpunimin e kërkesave, gjenerimin e një konfigurimi, gjenerimin dinamik të një përgjigjeje, modifikimin e një kërkese/përgjigjeje ose krijimin e shpejtë të cungëve për të zgjidhur problemet në aplikacionet në ueb.

Versioni i ri shton direktivën “js_header_filter”, e cila ju lejon të vendosni një funksion JavaScript për filtrimin dhe ndryshimin e titujve të përgjigjeve arbitrare: js_import foo.js; vendndodhjen / { js_header_filter foo.filter; proxy_pass http://127.0.0.1:8081/; } foo.js: funksion filter(r) { var cookies = r.headersOut['Set-Cookie']; var len = r.args.len ? Numri (r.args.len) : 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } eksportoni parazgjedhjen {filter};

Është shtuar edhe metoda ngx.fetch(), e cila implementon Fetch API, e cila ofron funksionalitetin e klientit HTTP. Metoda mbështet përpunimin e opsioneve të trupit, kokës, madhësisë së buffer dhe max_response_body_size. Objekti i kthyer Response mbështet metodat arrayBuffer(), bodyUsed, json(), ok, ridrejtimin, statusin, statusText, tekst(), tipin dhe url, dhe objekti Header mbështet get(), getAll() dhe has() metodat. funksioni fetch(r) { ngx.fetch('http://nginx.org/') .pastaj(përgjigja => përgjigje.tekst()) .pastaj (trupi => r.return(200, trupi)) .kap (e => r.return(501, e.mesazh)); }

Ju gjithashtu mund të vini re publikimin e serverit të aplikacionit NGINX Unit 1.22, i cili ofron një zgjidhje për ekzekutimin e aplikacioneve në internet në gjuhë të ndryshme programimi (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js dhe Java). Njësia NGINX mund të ekzekutojë njëkohësisht aplikacione të shumta në gjuhë të ndryshme programimi, parametrat e nisjes së të cilave mund të ndryshohen në mënyrë dinamike pa pasur nevojë të redaktoni skedarët e konfigurimit dhe të rinisni. Kodi është shkruar në C dhe shpërndahet nën licencën Apache 2.0.

Publikimi i ri i Njësisë NGINX u fokusua në përmirësimin e stabilitetit, zgjerimin e mjeteve të testimit dhe rregullimin e gabimeve. Në paketat e krijuara për Linux, përdoruesi dhe grupi nën të cilin funksionon njësia NGINX janë ndryshuar. Në vend të askush: askush, proceset tani ekzekutohen nën njësinë individuale të përdoruesit në njësinë e grupit. Siguruar përputhshmëri me API-në Stream të objekteve ServerRequest dhe ServerResponse nga moduli Node.js. Opsioni "rruga" për aplikacionet Python lejon që të specifikohen direktori të shumta.

Burimi: opennet.ru

Shto një koment