Utgivelse av nginx 1.19.7, njs 0.5.1 og NGINX Unit 1.22.0

Hovedgrenen til nginx 1.19.7 er utgitt, der utviklingen av nye funksjoner fortsetter (i den parallellstøttede stabile grenen 1.18 er det kun gjort endringer relatert til eliminering av alvorlige feil og sårbarheter).

Hovedendringer:

  • Når en arbeidsprosess går tom for ledige tilkoblinger, lukker nginx nå ikke bare keepalive-tilkoblinger, men også tilkoblinger som venter på at kontakten skal lukkes (“dvelende nær”).
  • Koden for tilkoblingsbehandling i HTTP/2 er nær HTTP/1.x-implementeringen. Støtte for de individuelle innstillingene "http2_recv_timeout", "http2_idle_timeout" og "http2_max_requests" er avviklet til fordel for de generelle direktivene "keepalive_timeout" og "keepalive_requests".
  • Innstillingene "http2_max_field_size" og "http2_max_header_size" er fjernet og "large_client_header_buffers" bør brukes i stedet.

Samtidig ble njs 0.5.1 utgitt, en JavaScript-tolk for nginx-nettserveren. njs-tolken implementerer ECMAScript-standarder og lar deg utvide nginxs evne til å behandle forespørsler ved å bruke skript i konfigurasjonen. Skript kan brukes i en konfigurasjonsfil for å definere avansert logikk for å behandle forespørsler, generere en konfigurasjon, dynamisk generere et svar, endre en forespørsel/svar, eller raskt lage stubber for å løse problemer i webapplikasjoner.

Den nye versjonen legger til "js_header_filter"-direktivet, som lar deg angi en JavaScript-funksjon for filtrering og endring av vilkårlige svarhoder: js_import foo.js; plassering / { 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 ? Antall(r.args.len) : 0; r.headersOut[‘Set-Cookie’] = cookies.filter(v=>v.length > len); } eksportstandard {filter};

Også lagt til er ngx.fetch()-metoden, som implementerer Fetch API, som gir HTTP-klientfunksjonalitet. Metoden støtter behandling av kropp, overskrifter, buffer_size og max_response_body_size alternativer. Det returnerte Response-objektet støtter arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type og url-metoder, og Header-objektet støtter get(), getAll() og has() metoder. function fetch(r) { ngx.fetch('http://nginx.org/') .then(reply => reply.text()) .then(body => r.return(200, body)) .catch (e => r.return(501, e.melding)); }

Du kan også merke deg publiseringen av NGINX Unit 1.22-applikasjonsserveren, som tilbyr en løsning for å kjøre nettapplikasjoner på forskjellige programmeringsspråk (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js og Java). NGINX Unit kan samtidig kjøre flere applikasjoner i forskjellige programmeringsspråk, hvor lanseringsparametrene kan endres dynamisk uten behov for å redigere konfigurasjonsfiler og starte på nytt. Koden er skrevet i C og distribuert under Apache 2.0-lisensen.

Den nye utgivelsen av NGINX Unit fokuserte på å forbedre stabiliteten, utvide testverktøyene og fikse feil. I pakkene som er generert for Linux, er brukeren og gruppen som NGINX Unit kjører under, endret. I stedet for nobody:nobody kjøres nå prosesser under den enkelte brukerenheten i enhetsgruppen. Sørget for kompatibilitet med Stream API for ServerRequest- og ServerResponse-objektene fra Node.js-modulen. Alternativet "bane" for Python-applikasjoner lar flere kataloger spesifiseres.

Kilde: opennet.ru

Legg til en kommentar