Vrystelling van nginx 1.25.3, njs 0.8.2 en NGINX Unit 1.31.1

Die hooftak van nginx 1.25.3 is vrygestel, waarbinne die ontwikkeling van nuwe funksies voortgaan. Die parallel-onderhou stabiele tak 1.24.x bevat slegs veranderinge wat verband hou met die uitskakeling van ernstige foute en kwesbaarhede. In die toekoms, gebaseer op die hooftak 1.25.x, sal 'n stabiele tak 1.26 gevorm word. Die projekkode is in C geskryf en onder die BSD-lisensie versprei.

Onder die veranderinge:

  • Beskerming teen abnormale aktiwiteit van HTTP/2-kliënte is versterk, en veral teen DoS-aanvalle van die "Rapid Reset"-klas, waarin 'n groot aantal drade wat onmiddellik teruggestel word binne 'n enkele HTTP/2-verbinding geskep word. In die verstekkonfigurasie word sulke aanvalle beperk deur die beperking op die aantal versoeke per verbinding “keepalive_requests” (na elke 1000 versoeke sal die verbinding teruggestel word) en die beperkings “limit_req”. Om vroeër te reageer op oorstromings met versoeke deur 'n groot aantal drade, is 'n bykomende beperking bygevoeg wat nie die skepping van meer as 256 (2 * max_concurrent_streams) nuwe drade per gebeurtenisverwerkingsiklus by verstek toelaat nie. Die nuwe limiet maak dit moontlik om versoeke te begin blokkeer voordat die algehele limiet op die aantal gelyktydige drade bereik word, byvoorbeeld wanneer drade asynchronies verwerk word of gespoel word. 'n Soortgelyke verandering is ook ingesluit in die vrystelling van angie 1.3.1 (nginx vurk), wat 'n week gelede gepubliseer is.
  • Verbeterde bestuur van buffers wat gebruik word wanneer HTTP/2-verbindings outomaties opgespoor word.
  • Die werkverrigting van die bekendstelling van konfigurasies met 'n groot aantal "ligging"-aanwysings is verbeter.
  • Het 'n werkerproses-ineenstorting reggestel wat kon voorkom wanneer HTTP/2 sonder probeer word om te gebruik. SSL.
  • Vaste verkeerde verwerking van die "Status"-kopskrif wat deur die agterkant met leë verduidelikende teks teruggestuur is, reggestel.
  • 'n Geheuelek reggestel tydens herkonfigurasie wat plaasgevind het tydens die bou met die PCRE2-biblioteek.
  • 'n Groot gedeelte van regstellings en verbeterings wat verband hou met ondersteuning vir die HTTP/3-protokol is bekendgestel.

Terselfdertyd, njs 0.8.2, 'n JavaScript-interpreteerder vir webbediener nginx. Die njs-interpreteerder implementeer ECMAScript-standaarde en laat jou toe om nginx se versoekverwerkingsvermoëns uit te brei deur konfigurasieskripte te gebruik. Skripte kan in die konfigurasielêer gebruik word om gevorderde versoekverwerkingslogika te definieer, konfigurasie te genereer, antwoorde dinamies te genereer, versoeke/antwoorde te wysig, of vinnig stompies te skep om probleme in webtoepassings op te los. Die nuwe weergawe voeg 'n konsole-objek by, wat die error(), info(), log(), time(), timeEnd() en warn() metodes verskaf. Die fs.existsSync() metode is by die fs module gevoeg.

U kan ook let op die publikasie van die NGINX Unit 1.31.1-toepassingsbediener, wat 'n oplossing bied om webtoepassings in verskeie programmeertale (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js en Java) te laat loop. NGINX Unit kan gelyktydig verskeie toepassings in verskillende programmeertale laat loop, waarvan die bekendstellingsparameters dinamies verander kan word sonder dat dit nodig is om konfigurasielêers te wysig en weer te begin. Benewens foutoplossings, kan die nuwe weergawe in die Wasm-module data groter as 4 GB laai, en wanneer u reageer, is dit moontlik om HTTP-statuskodes in te stel.

Bron: opennet.ru

Voeg 'n opmerking