Nginx 1.25.3 põhiharude väljalase on moodustatud, mille raames jätkub uute võimaluste arendamine. Samal ajal toetatud stabiilses harus 1.24.x tehakse muudatusi, mis on seotud tõsiste vigade ja haavatavuste parandamisega. Edasi arendatakse põhiharu 1.25.x baasil stabiilne haru 1.26. Projekti kood on kirjutatud C keeles ja jagatakse BSD litsentsi all.
Muudatuste hulgas:
- Tugevdatud kaitse HTTP/2 klientide ebanormaalse tegevuse eest, sealhulgas "Rapid Reset" klassi DoS-rünnakute vastu, kus luuakse suur hulk kohe sulgufaile ühe HTTP/2 ühenduse raames. Vaikimisi konfiguratsioonis takistavad sellised rünnakud "keepalive_requests" ühenduse päringute piiri (iga 1000 päringu järel ühendus suletakse) ja "limit_req" piiranguid. Varasema reageerimise saavutamiseks rünnakutele, kus kasutatakse suurt hulka vooge, on lisatud täiendav piirang, mis takistab vaikimisi rohkem kui 256 (2 * max_concurrent_streams) uue voogude loomist iga sündmuste töötlemise tsükli jooksul. See uus piirang võimaldab alustada päringute blokeerimist enne, kui saavutatakse kokkuvõttes voogude piirmäär, näiteks siis, kui voogusid töödeldakse asünkroonselt või need suletakse. Sarnane muudatus tehti ka angie 1.3.1 versioonis (nginx fork), mis avaldati nädal aega tagasi.
- Parandatud on puhversüsteemide haldamist, mida kasutatakse HTTP/2 ühenduste automaatseks määramiseks.
- Parandatud on konfiguratsioonide käivitamise jõudlust, kus on palju „location“ direktiive.
- Korrigeeritud on äkiline protsessi lõpetamine, mis ilmnes HTTP/2 kasutamisel ilma SSL.
- Parandatud on vale tagastatava 'Status' päise töötlemine, millel puudub selgitav tekst.
- Eliminated memory leak during reconfiguration that occurred when built with the PCRE2 library.
- Suure hulga paranduste ja täiustuste sisseviimine, mis on seotud HTTP/3 protokolli toe.
Samuti ilmus njs 0.8.2, JavaScripti tõlkija jaoks veebiserver nginx. njs tõlkija rakendab ECMAScripti standardeid ja võimaldab nginxi funktsionaalsust laiendada konfiguratsioonis skriptide kaudu. Skripte saab kasutada konfiguratsioonifailis, et määrata soovitud taotluste töötlemise loogika, luua konfiguratsiooni, genereerida vastuseid dünaamiliselt, muuta taotluse/vastuse andmeid või kiiresti luua stub'e, mis aitavad lahendada veebirakenduste probleeme. Uues versioonis on lisatud console objekt, mis pakub meetodeid error(), info(), log(), time(), timeEnd() ja warn(). Failimoodulisse (fs) on lisatud meetod fs.existsSync().
Samuti on välja antud NGINX Unit 1.31.1 rakenduste serveri versioon, mis pakub lahendust veebi rakenduste käitamiseks erinevates programmeerimiskeeltes (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ja Java). NGINX Unit all saavad erinevad rakendused töötada samal ajal, võimaldades nende käivitamise parameetreid dünaamiliselt muuta ilma konfiguratsioonifailide muutmise ja taaskäivitamiseta. Uues versioonis on parandatud vigu ning Wasm moodulis on lubatud laadida andmeid, mille suurus ületab 4 GB, ning vastuse saamisel on võimalik määrata HTTP olekukoodid.
Allikas: opennet.ru
