Rilascio di nginx 1.20.0

Dopo un anno di sviluppo, è stata presentata la nuova versione stabile del server HTTP ad alte prestazioni e del proxy multi-protocollo nginx 1.20.0, che incorpora le modifiche accumulate nella versione principale 1.19.x. In seguito, tutte le modifiche nella versione stabile 1.20 saranno relative alla correzione di gravi bug e vulnerabilità. A breve sarà formata la versione principale di nginx 1.21, in cui continuerà lo sviluppo di nuove funzionalità. Per gli utenti comuni, che non hanno l'esigenza di garantire la compatibilità con moduli di terze parti, si consiglia di utilizzare la versione principale, sulla quale vengono rilasciate le versioni del prodotto commerciale Nginx Plus ogni tre mesi.

Secondo il rapporto di marzo di Netcraft, nginx è utilizzato dal 20,15% di tutti i siti attivi (rispetto al 19,56% di un anno fa e al 20,73% di due anni fa), il che lo posiziona al secondo posto in questa categoria (la quota di Apache è del 25,38% (rispetto al 27,64% di un anno fa), Google al 10,09% e Cloudflare all'8,51%. Considerando tutti i siti, nginx mantiene la leadership con una quota del 35,34% del mercato (rispetto al 36,91% di un anno fa e al 27,52% di due anni fa), mentre la quota di Apache è del 25,98%, OpenResty (una piattaforma basata su nginx e LuaJIT) è al 6,55% e Microsoft IIS al 5,96%.

Tra il milione di siti più visitati al mondo, la quota di nginx è del 25,55% (rispetto al 25,54% di un anno fa e al 26,22% di due anni fa). Attualmente, circa 419 milioni di siti sono gestiti da nginx (rispetto ai 459 milioni di un anno fa). Secondo W3Techs, nginx è utilizzato dal 33,7% dei siti tra i più visitati, rispetto al 31,9% di aprile dello scorso anno e al 41,8% di due anni fa (questo calo è attribuito al passaggio a un conteggio separato del server HTTP Cloudflare). La quota di Apache è diminuita dal 39,5% al 34% nell'ultimo anno, mentre quella di Microsoft IIS è scesa dall'8,3% al 7%. La quota di LiteSpeed è aumentata dal 6,3% all'8,4% e quella di Node.js dallo 0,8% all'1,2%. In Russia, nginx è utilizzato dal 79,1% dei siti più visitati (rispetto al 78,9% di un anno fa).

Le principali migliorie aggiunte durante la formazione del ramo principale 1.19.x:

  • È stata aggiunta la possibilità di convalidare i certificati client utilizzando servizi esterni tramite il protocollo OCSP (Online Certificate Status Protocol). Per abilitare la convalida, è stata proposta la direttiva ssl_ocsp, per configurare la dimensione della cache — ssl_ocsp_cache, e per sovrascrivere l'URL del responder OCSP specificato nel certificato — ssl_ocsp_responder.
  • È stato incluso il modulo ngx_stream_set_module, che consente di assegnare un valore a una variabile server { listen 12345; set $true 1; }
  • È stata aggiunta la direttiva proxy_cookie_flags per specificare i flag per i Cookie nelle connessioni proxyate. Ad esempio, per aggiungere al Cookie «one» il flag «httponly», e per tutti gli altri Cookie i flag «nosecure» e «samesite=strict» si può utilizzare la seguente sintassi: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Una direttiva simile userid_flags per aggiungere flag ai Cookie è stata realizzata anche per il modulo ngx_http_userid.

  • Aggiunte le direttive «ssl_conf_command», «proxy_ssl_conf_command», «grpc_ssl_conf_command» e «uwsgi_ssl_conf_command», tramite le quali è possibile specificare parametri arbitrari per la configurazione di OpenSSL. Ad esempio, per dare priorità ai cifrari ChaCha e per una configurazione avanzata dei cifrari TLSv1.3, è possibile indicare ssl_conf_command Options PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Aggiunta la direttiva «ssl_reject_handshake», che impone di rifiutare tutti i tentativi di handshake SSL-connessioni (ad esempio, può essere utilizzata per rifiutare tutte le richieste con nomi host sconosciuti nel campo SNI). server { listen 443 ssl; ssl_reject_handshake on; } server { listen 443 ssl; server_name example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Nel proxy di posta è stata aggiunta la direttiva proxy_smtp_auth, che consente di autenticare un utente sul backend utilizzando il comando AUTH e il meccanismo PLAIN SASL.
  • Aggiunta la direttiva «keepalive_time», che limita la durata complessiva di ogni connessione keep-alive, dopodiché la connessione verrà chiusa (non confondere con keepalive_timeout, che definisce il tempo di inattività dopo il quale la connessione keep-alive viene chiusa).
  • È stata aggiunta la variabile $connection_time, attraverso la quale è possibile ottenere informazioni sulla durata della connessione in secondi con precisione millisecondi.
  • Nelle direttive «proxy_cache_path», «fastcgi_cache_path», «scgi_cache_path» e «uwsgi_cache_path» è stato aggiunto il parametro «min_free», che regola la dimensione della cache in base alla determinazione della dimensione minima dello spazio libero su disco.
  • Le direttive «lingering_close», «lingering_time» e «lingering_timeout» sono state adattate per lavorare con HTTP/2.
  • Il codice di gestione delle connessioni in HTTP/2 è stato avvicinato all'implementazione di HTTP/1.x. Il supporto per impostazioni individuali come «http2_recv_timeout», «http2_idle_timeout» e «http2_max_requests» è stato interrotto a favore delle direttive generali «keepalive_timeout» e «keepalive_requests». Sono state rimosse le impostazioni «http2_max_field_size» e «http2_max_header_size», per le quali dovrebbero essere utilizzati «large_client_header_buffers».
  • È stata aggiunta una nuova opzione da linea di comando «-e», che consente di specificare un file alternativo per la registrazione dei log degli errori, che verrà utilizzato invece del log definito nelle impostazioni. Al posto del nome del file, è possibile specificare un valore speciale stderr.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster