UtgÄvan av huvudgrenen nginx 1.25.3 har skapats, dÀr utvecklingen av nya funktioner fortsÀtter. I den parallellt stödda stabila grenen 1.24.x görs endast Àndringar relaterade till att ÄtgÀrda allvarliga fel och sÄrbarheter. I framtiden kommer den stabila grenen 1.26 att baseras pÄ huvudgrenen 1.25.x. Projektets kod Àr skriven i C och distribueras under BSD-licensen.
Bland Àndringarna:
- Skyddet mot anomal aktivitet hos HTTP/2-kunder har förstÀrkts, sÀrskilt mot DoS-attacker av typen "Rapid Reset", dÀr ett stort antal strömmar som omedelbart stÀngs skapas inom en enda HTTP/2-anslutning. I standardkonfigurationen begrÀnsas sÄdana attacker av grÀnsen för antalet förfrÄgningar pÄ anslutningen "keepalive_requests" (efter varje 1000 förfrÄgningar kommer anslutningen att stÀngas) och av begrÀnsningarna "limit_req". För att reagera snabbare pÄ flödande förfrÄgningar via ett stort antal strömmar har ett extra begrÀnsning lagts till som förbjuder skapande av mer Àn 256 (2 * max_concurrent_streams) nya strömmar per event-loop som standard. Denna nya begrÀnsning möjliggör att blockera förfrÄgningar innan den totala grÀnsen för antalet samtidiga strömmar nÄs, till exempel nÀr strömmarna behandlas asynkront eller stÀngs. En liknande Àndring ingick ocksÄ i utgÄvan av angie 1.3.1 (en fork av nginx) som publicerades för en vecka sedan.
- Hantera buffertarna som anvÀnds vid automatisk upptÀckte av HTTP/2-anslutningar har förbÀttrats.
- Prestandan vid uppstart av konfigurationer med ett stort antal "location"-direktiv har ökat.
- Kraschning av arbetsprocessen som observerades vid försök att anvÀnda HTTP/2 utan SSL.
- Felaktig hantering av den ÄtervÀndande statushuvudet frÄn back-end med tom förklarande text har ÄtgÀrdats.
- MinneslÀckan vid omkonfiguration, som intrÀffar vid kompilering med PCRE2-biblioteket, har ÄtgÀrdats.
- En stor mÀngd korrigeringar och förbÀttringar relaterade till stöd för HTTP/3-protokollet har genomförts.
Samtidigt har njs 0.8.2 slÀppts, en JavaScript-tolk för webbservern nginx. Tolkningen av njs implementerar ECMAScript-standarder och möjliggör att utöka nginx:s kapabiliteter för att hantera förfrÄgningar med skript i konfigurationen. Skript kan anvÀndas i konfigurationsfilen för att definiera avancerad logik för hantering av förfrÄgningar, skapa konfigurationer, dynamiskt generera svar, modifiera förfrÄgningar/svar eller snabbt skapa stubbar för att lösa problem i webbapplikationer. I den nya versionen har objektet console lagts till, som erbjuder metoderna error(), info(), log(), time(), timeEnd() och warn(). Metoden fs.existsSync() har lagts till i modulen fs.
Det Àr ocksÄ vÀrt att notera publiceringen av applikationsservern NGINX Unit 1.31.1, som erbjuder en lösning för att köra webbapplikationer pÄ olika programmeringssprÄk (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js och Java). Flera applikationer pÄ olika programmeringssprÄk kan köras samtidigt under NGINX Unit, vars startparametrar kan Àndras dynamiskt utan att behöva Àndra konfigurationsfiler och starta om. Förutom buggfixar har den nya versionen i Wasm-modulen tillÄtit uppladdning av data över 4 GB, och det har tillkommit möjlighet att stÀlla in HTTP-statuskoder vid svar.
KĂ€lla: opennet.ru
