D'Haaptzweig vun nginx 1.19.7 gouf verëffentlecht, an deem d'Entwécklung vun neie Fonctiounen weider geet (an der parallel ënnerstëtzt stabiler Branche 1.18 ginn nëmmen Ännerungen am Zesummenhang mat der Eliminatioun vu schlëmme Feeler a Schwachstelle gemaach).
Main Ännerungen:
- Wann en Aarbechterprozess aus fräie Verbindungen leeft, schléisst nginx elo net nëmmen Keepalive Verbindungen, awer och Verbindungen, déi op d'Socket waarden fir zou ze maachen ("laangend zou").
- De Verbindungsveraarbechtungscode an HTTP/2 ass no bei der HTTP/1.x Implementatioun. Ënnerstëtzung fir déi individuell Astellungen "http2_recv_timeout", "http2_idle_timeout" an "http2_max_requests" gouf zugonschte vun den allgemengen Direktiven "keepalive_timeout" an "keepalive_requests" gestoppt.
- D'Astellunge "http2_max_field_size" an "http2_max_header_size" goufen ewechgeholl an "large_client_header_buffers" sollen amplaz benotzt ginn.
Gläichzäiteg gëtt njs 0.5.1, en JavaScript-Interpreter fir Webserver nginx. Den njs-Interpreter implementéiert ECMAScript-Standarden a léisst Iech d'Ufroveraarbechtungsméiglechkeeten vun nginx mat Konfiguratiounsskripte erweideren. Scripte kënnen an der Konfiguratiounsdatei benotzt ginn, fir fortgeschratt Ufroveraarbechtungslogik ze definéieren, Konfiguratiounen ze generéieren, Äntwerten dynamesch ze generéieren, Ufroen/Äntwerten ze modifizéieren oder séier Stubs ze erstellen, fir Problemer a Webapplikatiounen ze léisen.
Déi nei Versioun füügt d'Direktiv "js_header_filter" derbäi, wat Iech erlaabt eng JavaScript Funktioun ze setzen fir ze filteren an ze änneren arbiträr Äntwert Header: js_import foo.js; Location / { js_header_filter foo.filter; proxy_pass http://127.0.0.1:8081/; } foo.js: Funktiounsfilter(r) { var cookies = r.headersOut['Set-Cookie']; var len = r.args.len ? Zuel(r.args.len): 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } exportéieren Standard {filter};
Och dobäi ass d'ngx.fetch () Method, déi d'Fetch API implementéiert, déi HTTP Client Funktionalitéit ubitt. D'Methode ënnerstëtzt d'Veraarbechtung vu Kierper, Header, buffer_size a max_response_body_size Optiounen. De zréckginn Äntwert Objet ënnerstëtzt arrayBuffer(), bodyUsed, json(), Header, ok, Redirect, Status, StatusText, Text(), Typ an URL Methoden, an den Header Objet ënnerstëtzt get(), getAll() an huet() Methoden. Funktioun fetch(r) { ngx.fetch('http://nginx.org/') .then(reply => reply.text()) .then(body => r.return(200, body)) .catch (e => r.return(501, e.message)); }
Dir kënnt d'Publikatioun och markéieren Server NGINX Unit 1.22, eng Léisung fir Webapplikatiounen auszeféieren, déi a verschiddene Programméiersprooche geschriwwe sinn (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js a Java). NGINX Unit kann gläichzäiteg verschidden Applikatiounen ausféieren, déi a verschiddene Sprooche geschriwwe sinn, an hir Startparameter kënnen dynamesch geännert ginn, ouni datt Konfiguratiounsdateien geännert oder nei gestart musse ginn. De Code ass a C geschriwwen a gëtt ënner der Apache 2.0 Lizenz lizenzéiert.
Déi nei NGINX Unit Verëffentlechung huet sech op d'Verbesserung vun der Stabilitéit, d'Erweiderung vun Testméiglechkeeten an d'Behiewe vu Feeler konzentréiert. Linux De Benotzer an d'Grupp, ënner deenen NGINX Unit a Paketen leeft, goufen geännert. Amplaz vun nobody:nobody lafen Prozesser elo ënner engem separaten Benotzer mam Numm unit an der unit-Grupp. D'Kompatibilitéit mat der Stream API fir ServerRequest- an ServerResponse-Objeten aus dem Node.js-Modul gouf garantéiert. Verschidde Verzeichnisser kënnen elo an der "path"-Optioun fir Python-Applikatiounen uginn ginn.
Source: opennet.ru
