Väljaanne nginx 1.19.7, njs 0.5.1 ja NGINX Unit 1.22.0

Nginx 1.19.7 põhiharu on välja antud, millega jätkub uute võimaluste arendamine (paralleelselt toetatavas stabiilses harus 1.18 tehakse muudatusi, mis on seotud tõsiste vigade ja haavatavuste parandamisega).

Peamised muudatused:

  • Kui töös olev protsess ammendab vabade ühenduste arvu, sulgeb nginx nüüd mitte ainult keepalive-ühendused, vaid ka ühendused, mille sokli sulgemine on ootel ("lingering close").
  • HTTP/2 ühenduste töötlemise kood on viidud ligikaudu HTTP/1.x teostusele. Üksikute seadete "http2_recv_timeout", "http2_idle_timeout" ja "http2_max_requests" tugi on lõpetatud üldiste direktiivide "keepalive_timeout" ja "keepalive_requests" kasuks.
  • Seaded "http2_max_field_size" ja "http2_max_header_size" on eemaldatud, mille asemel tuleks kasutada "large_client_header_buffers".

Samuti on välja antud njs 0.5.1, JavaScripti tõlkija. veebiserver nginx. njs tõlgendaja rakendab ECMAScripti standardeid ja võimaldab laiendada nginx-i võimalusi päringute käsitlemises, kasutades skripte konfiguratsioonis. Skripte saab kasutada konfiguratsioonifailis, et määratleda paisutatud päringute töötlemise loogika, genereerida konfiguratsiooni, dünaamiliselt luua vastuseid, muuta päringut/vastust või kiiresti luua poltkuule probleemide lahendamiseks veebirakendustes.

Uues versioonis on lisatud direktiiv «js_header_filter», mis võimaldab määrata JavaScripti funktsiooni vastuse suvaliste pealkirjade filtreerimiseks ja muutmiseks: 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};

Lisatud on ka meetod ngx.fetch(), mis implementeerib Fetch API, pakkudes HTTP-klienti. Meetod toetab valikute töötlemist, sealhulgas body, headers, buffer_size ja max_response_body_size. Tagastatud Response objekt toetab meetodeid arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type ja url, ning Header objekt toetab meetodeid get(), getAll() ja 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)); }

Samuti tasub märkida väljaandmist serverile rakendustele NGINX Unit 1.22, mis pakub lahendust veebirakenduste käivitamiseks erinevates programmeerimiskeeltes (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ja Java). NGINX Unit'i all võib korraga töötada mitu rakendust erinevates programmeerimiskeeltes, mille käivitamise parameetreid saab dünaamiliselt muuta ilma konfiguratsioonifailide muutmise ja taaskäivitamiseta. Kood on kirjutatud C-keeles ja levitatakse Apache 2.0 litsentsi alusel.

Uues NGINX Unit väljaandes on peamine tähelepanu keskmes stabiilsuse parandamine, testimisvahendite laiendamine ja tõrgete parandamine. Linuxi paketis on muudetud kasutajat ja gruppi, mille all NGINX Unit töötab. Selle asemel, et töötaks kasutaja nobody:rühmas nobody, käivitatakse protsessid nüüd eraldi kasutaja unit all rühmas unit. Tagatud on ühilduvus Node.js mooduli ServerRequest ja ServerResponse API Stream objektidega. Python-rakenduste valikus "path" on lubatud mitme katalooge näidata.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster