È stato pubblicato il rilascio della versione principale di nginx 1.31.5, in cui continuano a svilupparsi nuove funzionalità. Nella versione stabile parallela 1.30.x vengono apportate solo modifiche relative alla correzione di gravi errori e vulnerabilità. In futuro, sulla base della versione principale 1.31.x, verrà formata la versione stabile 1.32. Il codice del progetto è scritto in C e distribuito sotto licenza BSD.
Nel nuovo rilascio:
- È stata aggiunta l'API Rest per la gestione esterna, che consente di ricaricare la configurazione da remoto, ottenere dati sulle impostazioni e visualizzare lo stato dei processi di lavoro. Per abilitare il supporto API è prevista un'opzione di compilazione «—with-control-api» e un argomento della riga di comando «-l». Si consiglia di collegare l'API a un socket unix (nginx -l unix:/path/to/sock). È possibile utilizzare l'utilità Curl per accedere all'API.
- È stata aggiunta la possibilità di utilizzare una variabile che inizia con il simbolo «$» come valore della direttiva Location. Il valore della variabile, calcolato al momento dell'esecuzione, determina le condizioni di accesso al blocco Location. Tali Location possono essere utilizzate all'interno di altri blocchi Location o contenere al loro interno Location nidificate. map $arg_foo $pred { bar 1; qux 1; } location $pred { root html; }
- È stato implementato il modulo ngx_http_json_module, che fornisce funzionalità per l'analisi dei dati in formato JSON, estraendo singoli campi da JSON e utilizzando questi campi come variabili nella configurazione di nginx.
- È stata aggiunta la direttiva «client_body_early_read», la cui attivazione porta alla lettura del corpo della richiesta subito dopo la ricezione delle intestazioni.
È contemporaneamente disponibile il rilascio di njs 1.0.1, un modulo per l'integrazione dell'interprete del linguaggio JavaScript nel server http nginx. Njs consente di utilizzare script JavaScript nei file di configurazione per estendere le funzionalità di nginx. Gli script possono essere utilizzati per definire una logica di elaborazione avanzata delle richieste, generare configurazioni, generare dinamicamente risposte, modificare richieste/risposte o creare rapidamente stub per risolvere problemi nelle web app. Il codice del progetto è scritto in C e distribuito sotto licenza BSD.
Nella versione njs 1.0.1 sono state risolte tre vulnerabilità: overflow del buffer nella funzione xml.exclusiveC14n (CVE-2026-78689), aggiramento delle restrizioni di accesso tramite js_access (CVE-2026-18329) e chiamata alla terminazione anomala del processo di lavoro tramite manipolazioni con ngx.fetch (CVE-2026-78222).
Fonte: opennet.ru
