Az nginx 1.19.7, az njs 0.5.1 és az NGINX Unit 1.22.0 kiadása

Az nginx 1.19.7 fő ága kiadásra került, amelyben a új lehetőségek fejlesztése folyik (a párhuzamosan támogatott stabil ágba, 1.18, csak komoly hibák és sebezhetőségek javítását célozzák meg).

Főbb változások:

  • Amikor a munkafolyamat szabad kapcsolatai kimerültek, az nginx mostantól nemcsak a keepalive kapcsolatokat, hanem a zárásra váró socket kapcsolatokat is bezárja (‘lingering close’).
  • A HTTP/2 kapcsolatok feldolgozási kódja hasonlóvá vált a HTTP/1.x megvalósításához. Az egyes beállítások, mint a ‘http2_recv_timeout’, ‘http2_idle_timeout’ és ‘http2_max_requests’ támogatását megszüntették az általános direktívák, mint a ‘keepalive_timeout’ és a ‘keepalive_requests’ javára.
  • A ‘http2_max_field_size’ és a ‘http2_max_header_size’ beállításokat eltávolították, helyettük a ‘large_client_header_buffers’ használatát ajánlják.

Egyidejűleg kiadásra került az njs 0.5.1, a JavaScript nyelv értelmezője az webszerver nginx számára. Az njs értelmező megvalósítja az ECMAScript szabványokat, és lehetővé teszi az nginx képességeinek bővítését kéréskezelő szkriptek segítségével a konfigurációban. A szkriptek felhasználhatók a konfigurációs fájlban kiterjesztett kéréskezelési logika meghatározására, a konfiguráció alakítására, a válasz dinamikus generálására, a kérések/válaszok módosítására vagy gyors prototípusok készítésére a webalkalmazások problémáinak megoldása érdekében.

Az új verzióban bevezetésre került a ‘js_header_filter’ direktíva, amely lehetővé teszi JavaScript-funkció megadását tetszőleges válaszcímkék kiszűrésére és módosítására: 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};

Továbbá hozzáadva a ngx.fetch() metódus, amely megvalósítja az API Fetch funkcionalitását, amely HTTP-kliens lehetőséget biztosít. A metódus támogatja a body, headers, buffer_size és max_response_body_size opciók kezelését. A visszatérő Response objektumban támogatottak a arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type és url metódusok, míg a Header objektumban a get(), getAll() és has() metódusok. 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)); }

Szintén megjegyezhető a kiadás a szerver Az NGINX Unit 1.22 alkalmazások nyújt megoldást a webalkalmazások különböző programozási nyelveken (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js és Java) való futtatásához. Az NGINX Unit alatt egyszerre több alkalmazás is futhat különböző programozási nyelveken, amelyek indítási paraméterei dinamikusan módosíthatók konfigurációs fájlok szerkesztése és újraindítás nélkül. A kód C nyelven készült és Apache 2.0 licenc alatt terjesztik.

Az új NGINX Unit kiadás főleg a stabilitás növelésére, a tesztelési eszközök bővítésére és a hibák javítására összpontosított. A Linuxhoz készült csomagokban megváltozott az NGINX Unit futtatásához használt felhasználó és csoport. A folyamatok mostantól külön felhasználóként unit a unit csoportban futnak a nobody:nobody helyett. A ServerRequest és ServerResponse osztályok API-jával való kompatibilitást biztosítottak a Node.js modulból. A Python-alkalmazások „path” lehetőségénél több könyvtár megadása is engedélyezett.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster