La nuova versione di nginx 1.22.0 è già stata rilasciata

Dopo 13 mesi di sviluppo nuovo ramo stabile rilasciato Server HTTP ad alte prestazioni e server proxy multiprotocollo nginx 1.22.0, che incorpora le modifiche accumulate nel ramo principale 1.21.x.

In futuro, tutte le modifiche nel ramo stabile 1.22 saranno correlate al debug e gravi vulnerabilità. Presto verrà formato il ramo principale di nginx 1.23, in cui proseguirà lo sviluppo di nuove funzionalità.

Per gli utenti ordinari che non hanno il compito di garantire la compatibilità con moduli di terze parti, si consiglia di utilizzare il ramo principale, in base al quale si formano ogni tre mesi le versioni del prodotto commerciale Nginx Plus.

Novità principali in nginx 1.22.0

In questa nuova versione di nginx 1.22.0 presentata, il file Protezione avanzata contro gli attacchi di classe di contrabbando di richieste HTTP nei sistemi front-end-backend che consentono di accedere al contenuto delle richieste di altri utenti elaborate nello stesso thread tra front-end e back-end. Nginx ora restituisce sempre un errore quando si utilizza il metodo CONNECT; specificando contemporaneamente le intestazioni "Content-Length" e "Transfer-Encoding"; quando sono presenti spazi o caratteri di controllo nella stringa di query, nel nome dell'intestazione HTTP o nel valore dell'intestazione "Host".

Un'altra novità che spicca in questa nuova versione è quella aggiunto il supporto per le variabili alle direttive "proxy_ssl_certificate", "proxy_ssl_certificate_key", "grpc_ssl_certificate", "grpc_ssl_certificate_key", "uwsgi_ssl_certificate" e "uwsgi_ssl_certificate_key".

Inoltre, si segnala anche che è stato aggiunto supporto per la modalità "pipelining". per inviare più richieste POP3 o IMAP sulla stessa connessione al modulo proxy di posta, oltre a una nuova direttiva "max_errors" che specifica il numero massimo di errori di protocollo dopo il quale la connessione verrà chiusa.

Intestazioni "Auth-SSL-Protocol" e "Auth-SSL-Cipher" vengono passati al server di autenticazione del proxy di posta, inoltre è stato aggiunto il supporto per l'estensione ALPN TLS al modulo di trasmissione. Per determinare l'elenco dei protocolli ALPN supportati (h2, http/1.1), viene proposta la direttiva ssl_alpn e per ottenere informazioni sul protocollo ALPN concordato con il cliente, la variabile $ssl_alpn_protocol.

Delle altre modifiche che risaltano:

  • Blocco delle richieste HTTP/1.0 che includono l'intestazione HTTP "Transfer-Encoding" (introdotta nella versione del protocollo HTTP/1.1).
  • La piattaforma FreeBSD ha migliorato il supporto per la chiamata di sistema sendfile, che è progettata per orchestrare un trasferimento diretto di dati tra un descrittore di file e un socket. La modalità sendfile(SF_NODISKIO) è abilitata in modo permanente ed è stato aggiunto il supporto per la modalità sendfile(SF_NOCACHE).
  • Al modulo di trasmissione è stato aggiunto il parametro "fastopen", che abilita la modalità "TCP Fast Open" per le prese di ascolto.
  • Corretto l'escape dei caratteri """, "<", ">", "\", "^", "`", "{", "|" e "}" quando si utilizza il proxy con la modifica dell'URI.
  • La direttiva proxy_half_close è stata aggiunta al modulo stream, con la quale è possibile configurare il comportamento quando una connessione TCP proxy viene chiusa su un lato ("TCP half-close").
  • Aggiunta una nuova direttiva mp4_start_key_frame al modulo ngx_http_mp4_module per lo streaming di un video da un fotogramma chiave.
  • Aggiunta la variabile $ssl_curve per restituire il tipo di curva ellittica selezionata per la negoziazione chiave in una sessione TLS.
  • La direttiva sendfile_max_chunk ha modificato il valore predefinito in 2 megabyte;
  • Supporto fornito con la libreria OpenSSL 3.0. Aggiunto supporto per chiamare SSL_sendfile() quando si utilizza OpenSSL 3.0.
  • L'assemblaggio con la libreria PCRE2 è abilitato per impostazione predefinita e fornisce funzioni per l'elaborazione di espressioni regolari.
  • Durante il caricamento dei certificati del server, l'uso dei livelli di sicurezza supportati da OpenSSL 1.1.0 e impostati tramite il parametro "@SECLEVEL=N" nella direttiva ssl_ciphers è stato modificato.
  • Rimosso il supporto della suite di crittografia di esportazione.
  • Nell'API di filtraggio del corpo della richiesta, è consentito il buffering dei dati elaborati.
  • Rimosso il supporto per stabilire connessioni HTTP/2 utilizzando l'estensione Next Protocol Negotiation (NPN) invece di ALPN.

Infine se sei interessato a saperne di più, puoi controllare i dettagli nel seguente link