Die Veröffentlichung von nginx 1.19.7, njs 0.5.1 und NGINX Unit 1.22.0

Udgivelsen af hovedgrenen nginx 1.19.7 er blevet dannet, hvor udviklingen af nye muligheder fortsætter (i den parallelt understøttede stabilitetsgren 1.18 foretages der kun ændringer relateret til reparation af alvorlige fejl og sårbarheder).

Vigtige ændringer:

  • Når arbejdsgangen er udtømt for frie forbindelser, lukker nginx nu ikke kun keepalive-forbindelser, men også forbindelser, der venter på socketlukning (‘lingering close’).
  • Koden til behandling af forbindelser i HTTP/2 er tættere på implementeringen af HTTP/1.x. Støtten til individuelle indstillinger ‘http2_recv_timeout’, ‘http2_idle_timeout’ og ‘http2_max_requests’ er blevet fjernet til fordel for de generelle direktiver ‘keepalive_timeout’ og ‘keepalive_requests’.
  • Indstillingerne ‘http2_max_field_size’ og ‘http2_max_header_size’ er blevet fjernet, i stedet skal ‘large_client_header_buffers’ anvendes.

Samtidig blev njs 0.5.1 udgivet, en JavaScript-tolk til webserver nginx. Tolkningen njs implementerer ECMAScript-standarder og muliggør udvidelse af nginx' muligheder til behandling af anmodninger ved hjælp af scripts i konfigurationen. Scripts kan bruges i konfigurationsfilen til at definere avanceret logik til behandling af anmodninger, opbygge konfigurationer, dynamisk generere svar, ændre anmodninger/svar eller hurtigt oprette stubber til problemløsning i webapplikationer.

I den nye version er direktivet ‘js_header_filter’ blevet tilføjet, som gør det muligt at angive en JavaScript-funktion til filtrering og ændring af vilkårlige svaroverskrifter: 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};

Metoden ngx.fetch() er også blevet tilføjet, som implementerer Fetch API, der giver funktionalitet til HTTP-klienten. Metoden understøtter behandling af optioner body, headers, buffer_size og max_response_body_size. I det returnerede Response-objekt understøttes metoderne arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type og url, mens Header-objektet har metoderne get(), getAll() og 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 er også værd at nævne offentliggørelsen server NGINX Unit 1.22 applikationer, der tilbyder en løsning til at køre webapplikationer på forskellige programmeringssprog (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js og Java). Under NGINX Unit kan flere applikationer på forskellige programmeringssprog køre samtidigt, og startparametre kan ændres dynamisk uden at redigere konfigurationsfiler og genstarte. Koden er skrevet i C og distribueres under Apache 2.0 licensen.

I den nye udgave af NGINX Unit har fokus været på at forbedre stabiliteten, udvide testværktøjerne og rette fejl. I de pakker, der laves til Linux, er brugeren og gruppen ændret, som NGINX Unit kører under. I stedet for nobody:nobody kører processerne nu under en særskilt bruger unit i gruppen unit. Der er sikret kompatibilitet med API Stream objekterne ServerRequest og ServerResponse fra Node.js modulet. I 'path' indstillingen for Python-applikationer er det nu muligt at angive flere mapper.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster