ĂshtĂ« formuar lĂ«shimi i degĂ«s kryesore nginx 1.25.3, nĂ« kuadĂ«r tĂ« sĂ« cilĂ«s vazhdon zhvillimi i mundĂ«sive tĂ« reja. NĂ« degĂ«n stabile 1.24.x, qĂ« mbĂ«shtetet paralelisht, bĂ«hen vetĂ«m ndryshime qĂ« lidhen me eliminimin e gabimeve serioze dhe dobĂ«sive. MĂ« tej, mbi bazĂ«n e degĂ«s kryesore 1.25.x do tĂ« formohet njĂ« degĂ« stabile 1.26. Kodi i projektit Ă«shtĂ« shkruar nĂ« gjuhĂ«n C dhe shpĂ«rndahet nĂ«n licencĂ«n BSD.
Ndër ndryshimet:
- ĂshtĂ« forcuar mbrojtja ndaj aktiviteteve anomale tĂ« klientĂ«ve HTTP/2, veçanĂ«risht ndaj sulmeve DoS tĂ« klasĂ«s 'Rapid Reset', ku krijohet njĂ« numĂ«r i madh rrjedhash qĂ« anulohen menjĂ«herĂ« brenda njĂ« lidhjeje HTTP/2. NĂ« konfigurimin e paracaktuar, kĂ«to sulme ndeshen me limitin e numrit tĂ« kĂ«rkesave pĂ«r lidhjen 'keepalive_requests' (pas çdo 1000 kĂ«rkesash lidhja do tĂ« anulohet) dhe me kufizimet 'limit_req'. PĂ«r njĂ« reagim mĂ« tĂ« hershĂ«m ndaj fluksit tĂ« kĂ«rkesave pĂ«rmes numrit tĂ« madh tĂ« rrjedhave, Ă«shtĂ« shtuar njĂ« kufizim shtesĂ« qĂ« nuk lejon krijimin e mĂ« shumĂ« se 256 (2 * max_concurrent_streams) rrjedhash tĂ« reja pĂ«r çdo cikĂ«l tĂ« pĂ«rpunimit tĂ« ngjarjeve. Ky kufizim i ri ofron mundĂ«sinĂ« pĂ«r tĂ« bllokuar kĂ«rkesat pĂ«rpara se tĂ« arrihet kufiri i pĂ«rgjithshĂ«m tĂ« numrit tĂ« rrjedhave tĂ« pĂ«rkohshme, pĂ«r shembull, kur rrjedhat pĂ«rpunohen asinkronisht ose anulohen. NjĂ« ndryshim i ngjashĂ«m gjithashtu Ă«shtĂ« pĂ«rfshirĂ« nĂ« lĂ«shimin angie 1.3.1 (fork i nginx), i publikuar njĂ« javĂ« mĂ« parĂ«.
- ĂshtĂ« pĂ«rmirĂ«suar menaxhimi i bufferave qĂ« pĂ«rdoren pĂ«r identifikimin automatik tĂ« lidhjeve HTTP/2.
- ĂshtĂ« rritur performanca e nisjes sĂ« konfigurimeve me numĂ«r tĂ« madh direktivash 'location'.
- ĂshtĂ« eliminuar pĂ«rfundimi i papritur i procesit tĂ« punĂ«s, qĂ« vĂ«rehet gjatĂ« pĂ«rpjekjes pĂ«r ta pĂ«rdorur HTTP/2 pa SSL.
- ĂshtĂ« rregulluar pĂ«rpunimi i papĂ«rshtatshĂ«m i headers 'Status' tĂ« kthyer nga backend-i me tekst shpjegues bosh.
- ĂshtĂ« eliminuar njĂ« rrjedhje memorie gjatĂ« ripĂ«rkufizimit, qĂ« ndodh gjatĂ« ndĂ«rtimit me bibliotekĂ«n PCRE2.
- Janë përfshirë një sasi e madhe rregullimesh dhe përmirësimesh që lidhen me mbështetje për protokollin HTTP/3.
Po ashtu, ndodhi lëshimi i njs 0.8.2, interpretuese e gjuhës JavaScript për serverin web nginx. Interpretuesi njs implementon standardet ECMAScript dhe lejon zgjerimin e mundësive të nginx për përpunimin e kërkesave përmes skripteve në konfigurim. Skriptet mund të përdoren në skedarin e konfigurimit për të përcaktuar logjikë të avancuar të përpunimit të kërkesave, për formimin e konfiguracionit, për gjenerimin dinamik të përgjigjeve, për modifikimin e kërkesave/përgjigjeve ose për krijimin e shpejtë të përgjigjeve për zgjidhjen e problemeve në aplikacionet web. Në versionin e ri, është shtuar objekti console, që ofron metoda error(), info(), log(), time(), timeEnd() dhe warn(). Në modul, fs është shtuar metoda fs.existsSync().
Po ashtu, mund të theksohet publikimi i serverit të aplikacioneve NGINX Unit 1.31.1, që ofron një zgjidhje për të mundësuar ekzekutimin e aplikacioneve web në gjuhë të ndryshme programimi (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js dhe Java). Nën menaxhimin e NGINX Unit, mund të ekzekutohen njëkohësisht disa aplikacione në gjuhë të ndryshme programimi, të cilat parametrat e nisjes së tyre mund të ndryshohen dinamikisht pa nevojën e modifikimit të skeda të konfigurimit dhe rindizjes. Përveç përmirësimeve në versionin e ri, në modul, Wasm është e lejuar që të ngarkohet të dhëna me madhësi mbi 4 GB, dhe kur jepet një përgjigje ofrohet mundësia për të vendosur kodet e statusit HTTP.
Burimi: opennet.ru
