News

NGINX 1.31.5: i "predicate locations" instradano il traffico API su qualsiasi variabile

NGINX 1.31.5 introduce i blocchi location basati su variabili: si instrada il traffico su header, metodo o campi JSON senza script esterni.

Redazione UptimeMag · 8 settembre 2026 · 2 minuti di lettura

NGINX 1.31.5: i "predicate locations" instradano il traffico API su qualsiasi variabile

NGINX ha rilasciato il 2 settembre 2026 la versione mainline 1.31.5, che cambia una delle regole più vecchie della configurazione: un blocco location non deve più per forza corrispondere a un URI. La versione mainline 1.31.5 è stata rilasciata con control API, predicate locations e il modulo ngx_http_json_module.

La novità principale, chiamata "predicate locations", permette di far dipendere la corrispondenza di un blocco location da qualsiasi variabile NGINX, non solo dal path richiesto. Con la 1.31.5 una location può essere definita anche da una variabile preceduta dal simbolo dollaro: NGINX la valuta a runtime e la location corrisponde quando il valore non è vuoto e non è uguale a "0", qualsiasi altro valore conta come corrispondenza. In pratica non si può scrivere direttamente una condizione come $arg_debug = 1 dentro location: non si introduce una nuova sintassi di confronto; il pattern previsto è calcolare prima il risultato sì/no, tipicamente con map, e passarlo alla location come predicato.

Le location a predicato si possono annidare tra loro e con le classiche location basate su URI, così da applicare prima il routing per path e poi, dentro, la logica su header, metodo HTTP o altri campi.

La parte che interessa chi gestisce API è l'integrazione con il body della richiesta. La nuova direttiva client_body_early_read consente di leggere il body prima che NGINX scelga la location; combinata con il parser JSON nativo, permette di estrarre un campo via JSONPath (ad esempio user.params.vip) e usarlo come variabile di instradamento, senza passare da NJS per ogni decisione di routing. Per logiche più complesse resta disponibile NJS, ma solo per i calcoli puntuali: il routing vero e proprio torna nelle location.

Nella stessa release debutta anche il Control API, una funzionalità finora riservata a NGINX Plus e ora aperta nel core open source, che espone un'interfaccia REST per ispezionare processi e configurazione in esecuzione.

Va ricordato che 1.31.5 è un ramo mainline dispari: il ramo stabile a numerazione pari resta la scelta sicura per la produzione, mentre il ramo mainline 1.31.x è dove atterra il lavoro sperimentale. Chi vuole provare le nuove direttive in un ambiente di test può consultare il cambiamento ufficiale su nginx.org e la documentazione dei moduli ngx_http_core_module e ngx_http_json_module.

Testo redatto con il supporto dell'intelligenza artificiale e verificato dalla redazione (AI Act, art. 50).