Udgivelse af nginx 1.19.7, njs 0.5.1 og NGINX Unit 1.22.0

Hovedgrenen af ​​nginx 1.19.7 er blevet frigivet, inden for hvilken udviklingen af ​​nye funktioner fortsætter (i den parallelt understøttede stabile gren 1.18 foretages kun ændringer relateret til eliminering af alvorlige fejl og sårbarheder).

Vigtigste ændringer:

  • Når en arbejdsproces løber tør for ledige forbindelser, lukker nginx nu ikke kun keepalive-forbindelser, men også forbindelser, der venter på, at stikket lukker ("langende tæt").
  • Forbindelsesbehandlingskoden i HTTP/2 er tæt på HTTP/1.x-implementeringen. Understøttelse af de individuelle indstillinger "http2_recv_timeout", "http2_idle_timeout" og "http2_max_requests" er udgået til fordel for de generelle direktiver "keepalive_timeout" og "keepalive_requests".
  • Indstillingerne "http2_max_field_size" og "http2_max_header_size" er blevet fjernet, og "large_client_header_buffers" skal bruges i stedet.

Samtidig blev njs 0.5.1 frigivet, en JavaScript-fortolker til nginx-webserveren. njs-fortolkeren implementerer ECMAScript-standarder og giver dig mulighed for at udvide nginx's evne til at behandle anmodninger ved hjælp af scripts i konfigurationen. Scripts kan bruges i en konfigurationsfil til at definere avanceret logik til behandling af anmodninger, generering af en konfiguration, dynamisk generering af et svar, ændring af en anmodning/svar eller hurtigt oprettelse af stubs til at løse problemer i webapplikationer.

Den nye version tilføjer "js_header_filter"-direktivet, som giver dig mulighed for at indstille en JavaScript-funktion til filtrering og ændring af vilkårlige svaroverskrifter: js_import foo.js; placering / { 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 ? Antal(r.args.len): 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } eksport standard {filter};

Også tilføjet er ngx.fetch()-metoden, som implementerer Fetch API, som giver HTTP-klientfunktionalitet. Metoden understøtter behandling af body, headers, buffer_size og max_response_body_size muligheder. Det returnerede Response-objekt understøtter arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type og url-metoder, og Header-objektet understø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.besked)); }

Du kan også bemærke udgivelsen af ​​NGINX Unit 1.22 applikationsserveren, som tilbyder en løsning til at køre webapplikationer på forskellige programmeringssprog (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js og Java). NGINX Unit kan samtidigt køre flere applikationer på forskellige programmeringssprog, hvis startparametre kan ændres dynamisk uden behov for at redigere konfigurationsfiler og genstarte. Koden er skrevet i C og distribueret under Apache 2.0-licensen.

Den nye udgivelse af NGINX Unit fokuserede på at forbedre stabiliteten, udvide testværktøjer og rette fejl. I de pakker, der er genereret til Linux, er brugeren og gruppen, som NGINX Unit kører under, blevet ændret. I stedet for nobody:nobody kører processer nu under den enkelte brugerenhed i enhedsgruppen. Sikret kompatibilitet med Stream API af ServerRequest- og ServerResponse-objekterne fra Node.js-modulet. Muligheden "sti" for Python-applikationer tillader, at flere mapper kan specificeres.

Kilde: opennet.ru

Tilføj en kommentar