Utgivning av nginx 1.19.7, njs 0.5.1 och NGINX Unit 1.22.0

Huvudversionen av nginx 1.19.7 har slÀppts och utvecklingen av nya funktioner fortsÀtter (i den parallellt stödjda stabila versionen 1.18 görs endast Àndringar relaterade till att ÄtgÀrda allvarliga fel och sÄrbarheter).

Huvudsakliga förÀndringar:

  • NĂ€r arbetsprocessen har slut pĂ„ fria anslutningar stĂ€nger nginx nu inte bara keepalive-anslutningar, utan Ă€ven anslutningar som Ă€r i vĂ€ntelĂ€ge för att stĂ€nga socketen ("lingering close").
  • Kodhanteringen för anslutningar i HTTP/2 har anpassats till implementationen av HTTP/1.x. Stödet för individuella instĂ€llningar av "http2_recv_timeout", "http2_idle_timeout" och "http2_max_requests" har upphört till förmĂ„n för gemensamma direktiv som "keepalive_timeout" och "keepalive_requests".
  • InstĂ€llningarna "http2_max_field_size" och "http2_max_header_size" har tagits bort, och istĂ€llet bör "large_client_header_buffers" anvĂ€ndas.

Samtidigt har njs 0.5.1 slÀppts, vilket Àr en JavaScript-tolkare för webbservern nginx. Tolkaren njs implementerar ECMAScript-standarder och gör det möjligt att utöka nginx:s funktionalitet för att hantera förfrÄgningar med hjÀlp av skript i konfigurationen. Skript kan anvÀndas i konfigurationsfilen för att definiera avancerad logik för förfrÄgningshantering, konfigurera instÀllningar, dynamiskt generera svar, modifiera förfrÄgan/svar eller snabbt skapa stubbar för att lösa problem i webbapplikationer.

I den nya versionen har direktivet "js_header_filter" lagts till, vilket gör det möjligt att ange en JavaScript-funktion för filtrering och Ă€ndring av godtyckliga headers i svaret: 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};

En metod ngx.fetch() har ocksĂ„ lagts till, vilket implementerar Fetch API och tillhandahĂ„ller HTTP-klientfunktionalitet. Metoden stöder hantering av alternativ som body, headers, buffer_size och max_response_body_size. I det returnerade objektet Response stöds metoderna arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type och url, medan i objektet Header stöds metoderna get(), getAll() och 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)); }

Det Àr ocksÄ vÀrt att nÀmna publiceringen servern NGINX Unit 1.22 erbjuder en lösning för att köra webbapplikationer pÄ olika programmeringssprÄk (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js och Java). Flera applikationer kan köras samtidigt pÄ olika programmeringssprÄk under NGINX Unit, och startparametrarna kan Àndras dynamiskt utan att behöva redigera konfigurationsfiler eller starta om tjÀnsten. Koden Àr skriven i C och distribueras under Apache 2.0-licensen.

I den nya utgÄvan av NGINX Unit har fokus lagts pÄ att öka stabiliteten, utöka testverktygen och ÄtgÀrda buggar. AnvÀndar- och gruppinstÀllningarna som anvÀnds för att köra NGINX Unit i de skapade paketen för Linux har Àndrats. IstÀllet för nobody:nobody körs processerna nu under den separata anvÀndaren unit i gruppen unit. Kompatibilitet med API Stream-objekten ServerRequest och ServerResponse frÄn Node.js-modulen har sÀkerstÀllts. För Python-applikationer tillÄts nu angivande av flera kataloger i alternativet "path".

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster