Ë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ë, njs 0.5.1, një interpretues JavaScript për ueb server nginx. Interpretuesi njs zbaton standardet ECMAScript dhe ju lejon të zgjeroni aftësitë e përpunimit të kërkesave të nginx duke përdorur skripte konfigurimi. Skriptet mund të përdoren në skedarin e konfigurimit për të përcaktuar logjikën e avancuar të përpunimit të kërkesave, për të gjeneruar konfigurime, për të gjeneruar dinamikisht përgjigje, për të modifikuar kërkesat/përgjigjet ose për të krijuar shpejt stub-e për të zgjidhur problemet në aplikacionet web.
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 ta shënoni botimin server Njësia NGINX 1.22, një zgjidhje për ekzekutimin e aplikacioneve web të shkruara në gjuhë të ndryshme programimi (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js dhe Java). Njësia NGINX mund të ekzekutojë njëkohësisht disa aplikacione të shkruara në gjuhë të ndryshme, dhe parametrat e tyre të nisjes mund të ndryshohen dinamikisht pa pasur nevojë të modifikoni skedarët e konfigurimit ose të ristartoni. Kodi është shkruar në C dhe është i licencuar sipas licencës Apache 2.0.
Versioni i ri i Njësisë NGINX u përqendrua në përmirësimin e stabilitetit, zgjerimin e aftësive të testimit dhe rregullimin e gabimeve. Linux Përdoruesi dhe grupi nën të cilët funksionon Njësia NGINX në paketa janë ndryshuar. Në vend të nobody:nobody, proceset tani funksionojnë nën një njësi të veçantë të emërtuar nga përdoruesi në grupin e njësive. Është siguruar përputhshmëria me Stream API për objektet ServerRequest dhe ServerResponse nga moduli Node.js. Tani mund të specifikohen drejtori të shumëfishta në opsionin "path" për aplikacionet Python.
Burimi: opennet.ru
