Është lëshuar dega kryesore e nginx 1.25.3, brenda së cilës vazhdon zhvillimi i veçorive të reja. Dega e qëndrueshme 1.24.x e mbajtur paralelisht përmban vetëm ndryshime që lidhen me eliminimin e defekteve dhe dobësive serioze. Në të ardhmen, bazuar në degën kryesore 1.25.x, do të formohet një degë e qëndrueshme 1.26. Kodi i projektit është shkruar në C dhe shpërndahet nën licencën BSD.
Ndër ndryshimet:
- Mbrojtja kundër aktivitetit anormal të klientit HTTP/2 është forcuar, veçanërisht kundër sulmeve DoS "Rapid Reset" që krijojnë një numër të madh rrjedhash të rivendosura njëkohësisht brenda një lidhjeje të vetme HTTP/2. Në konfigurimin e parazgjedhur, sulme të tilla kufizohen nga limiti i kërkesës për lidhje "keepalive_requests" (lidhja rivendoset pas çdo 1000 kërkesash) dhe kufizimet "limit_req". Për t'iu përgjigjur më shpejt përmbytjeve të kërkesave në një numër të madh rrjedhash, është shtuar një limit shtesë, duke parandaluar krijimin e më shumë se 256 (2 * max_concurrent_streams) rrjedhave të reja për cikël përpunimi ngjarjesh si parazgjedhje. Ky limit i ri lejon bllokimin e kërkesave përpara se të arrihet limiti i përgjithshëm i rrjedhës së njëkohshme, për shembull, kur rrjedhat përpunohen në mënyrë asinkrone ose rivendosen. Një ndryshim i ngjashëm u përfshi edhe në versionin Angie 1.3.1 (një degëzim i Nginx), të publikuar një javë më parë.
- Menaxhimi i përmirësuar i buferëve të përdorur kur zbulohen automatikisht lidhjet HTTP/2.
- Performanca e nisjes së konfigurimeve me një numër të madh direktivash "vendndodhja" është përmirësuar.
- U rregullua një rrëzim i procesit të punës që mund të ndodhte kur përpiqeshim të përdornim HTTP/2 pa SSL.
- U rregullua përpunimi i gabuar i kokës "Status" të kthyer nga backend me tekst shpjegues bosh.
- U rregullua një rrjedhje e memories gjatë rikonfigurimit që ndodhi gjatë ndërtimit me bibliotekën PCRE2.
- Janë prezantuar një numër i madh rregullimesh dhe përmirësimesh që lidhen me mbështetjen e protokollit HTTP/3.
Në të njëjtën kohë, njs 0.8.2, një interpretues JavaScript për ueb server nginx. Interpretuesi njs zbaton standardet ECMAScript dhe ju lejon të zgjeroni aftësitë e përpunimit të kërkesave të nginx duke përdorur skripte konfigurimi. Skriptet mund të përdoren në skedarin e konfigurimit për të përcaktuar logjikën e avancuar të përpunimit të kërkesave, për të gjeneruar konfigurim, për të gjeneruar dinamikisht përgjigje, për të modifikuar kërkesat/përgjigjet ose për të krijuar shpejt stub-e për të zgjidhur problemet në aplikacionet web. Versioni i ri shton një objekt konsole, i cili ofron metodat error(), info(), log(), time(), timeEnd() dhe warn(). Metoda fs.existsSync() është shtuar në modulin fs.
Gjithashtu, vlen të përmendet publikimi i Njësisë NGINX 1.31.1, një zgjidhje serveri aplikacionesh për ekzekutimin e aplikacioneve web në gjuhë të ndryshme programimi (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js dhe Java). Njësia NGINX mund të ekzekutojë njëkohësisht aplikacione të shumta në gjuhë të ndryshme dhe parametrat e tyre të nisjes mund të modifikohen dinamikisht pa pasur nevojë të modifikohen skedarët e konfigurimit ose të riniset. Përveç rregullimeve të gabimeve, versioni i ri i modulit Wasm lejon shkarkimin e të dhënave më të mëdha se 4 GB dhe lejon vendosjen e kodeve të statusit HTTP në përgjigje.
Burimi: opennet.ru
