È stata formata la release principale di nginx 1.25.5, nell'ambito della quale continua lo sviluppo di nuove funzionalità. Nella branch stabile 1.24.x, supportata parallelamente, vengono apportate solo modifiche volte a risolvere gravi bug e vulnerabilità. In futuro, sulla base della branch principale 1.25.x, sarà formata la branch stabile 1.26. Il codice del progetto è scritto in C e distribuito sotto licenza BSD.
Tra le modifiche:
- È stato aggiunto il supporto al modulo stream server virtuali, la cui configurazione è definita nel blocco «server { … }» mediante la direttiva server_name. server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
- È stato aggiunto un nuovo modulo ngx_stream_pass_module, progettato per inoltrare le connessioni ricevute direttamente a qualsiasi socket in ascolto collegato a moduli come http, stream e mail. stream { server { listen 12345 ssl; ssl_certificate domain.crt; ssl_certificate_key domain.key; pass 127.0.0.1:8000; } }
- Nella direttiva listen del modulo stream è stato implementato il supporto per i parametri «deferred» (che abilita l'accept ritardato), «accept_filter» (filtro delle connessioni in entrata, applicato prima della chiamata alla funzione accept) e «setfib» (assegnazione della tabella di routing).
- Per alcune architetture è stato implementato il supporto per la definizione della dimensione del blocco (cache line) utilizzato per il trasferimento dei dati tra la cache della CPU e la memoria.
- Nei sistemi Apple Silicon è stato aggiunto il supporto per il gestore di pacchetti Homebrew.
- Sono stati risolti problemi di cross-compilazione per Windows.
- È stato corretto un errore che provocava la chiusura delle connessioni quando si utilizzava la modalità 0-RTT nel protocollo QUIC.
Inoltre, si segnala la pubblicazione della versione stabile del progetto FreeNginx 1.26.0, un fork di Nginx. Lo sviluppo del fork è guidato da Maksim Dunin, uno dei principali sviluppatori di Nginx. FreeNginx si posiziona come un progetto non commerciale che garantisce lo sviluppo della base di codice di Nginx senza interventi aziendali. Il rilascio 1.26.0 è stato contrassegnato come rilascio stabile, che ha incorporato modifiche e correzioni dalle versioni della branch mainline di Nginx 1.25. Tra le altre cose, FreeNginx 1.26.0 include il supporto sperimentale per il protocollo HTTP/3, miglioramenti per contrastare gli attacchi DoS e correzioni relative all'elaborazione asincrona dell'input/output.
Contemporaneamente è stato rilasciato njs 0.8.4, un interprete per il linguaggio JavaScript per web nginx. L'interprete njs implementa gli standard ECMAScript e consente di ampliare le funzionalità di nginx per la gestione delle richieste tramite script nella configurazione. Gli script possono essere utilizzati nel file di configurazione per definire logiche avanzate di gestione delle richieste, generazione della configurazione, generazione dinamica della risposta, modifica della richiesta/risposta o rapida creazione di stub per risolvere problemi nelle applicazioni web. Nella nuova versione: è stato aggiunto il supporto per il motore JavaScript QuickJS nella CLI; è stata aggiunta la possibilità di impostare l'intestazione Server; è stata implementata la verifica dei duplicati delle variabili impostate tramite js_set.
Fonte: opennet.ru
