Rilascio di nginx 1.28.0 e del fork FreeNginx 1.28.0

Dopo un anno di sviluppo, è stata pubblicata una nuova versione stabile del server HTTP ad alte prestazioni e del proxy multi-protocollo nginx 1.28.0, che raccoglie le modifiche accumulate nella branch principale 1.27.x. In futuro, tutte le modifiche nella branch stabile 1.28 saranno concentrate sull'eliminazione di errori gravi e vulnerabilità. A breve sarà formata la branch principale nginx 1.29, nella quale 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 branch principale, sulla quale ogni tre mesi vengono rilasciate versioni del prodotto commerciale Nginx Plus.

Secondo il rapporto di marzo della società Netcraft, circa 245 milioni di siti sono in funzione con nginx (rispetto ai 243 milioni di un anno fa e ai 289 milioni di due anni fa). Nginx è utilizzato dal 17,89% di tutti i siti attivi (contro il 18,15% di un anno fa e il 18,94% di due anni fa), il che corrisponde al primo posto in questa categoria (la quota di Apache è del 16,03% (rispetto al 20,09% di un anno fa e al 20,52% di due anni fa), Cloudflare — 17,81% (14,12%, 11,32%), Google — 9,89% (10,41%, 9,89%).

Considerando tutti i siti, nginx mantiene la leadership con una quota del 20,48% del mercato (rispetto al 22,31% di un anno fa e al 25,94% di due anni fa), mentre la quota di Apache è del 16,03% (20,17%, 20,58%), Cloudflare — 12,87% (11,24%, 10,17%), OpenResty (piattaforma basata su nginx e LuaJIT) — 9,36% (7,93%, 7,94%).

Tra i milioni di siti più visitati al mondo, nginx si classifica al secondo posto con una quota del 20,37% (rispetto al 20,63% di un anno fa e al 21,37% di due anni fa). Cloudflare occupa il primo posto con il 22,32% (rispetto al 22,59% di un anno fa e al 21,62% di due anni fa). La quota di Apache httpd è del 17,95% (20,09%, 21,18%).

Secondo i dati di W3Techs, nginx è utilizzato sul 33,8% dei siti tra il milione più visitati (ad aprile dello scorso anno, questo dato era del 34,3%, due anni fa del 34,5%). La quota di Apache è diminuita nel corso dell'anno dal 30,1% al 26,3%, mentre la quota di Microsoft IIS è scesa dal 5% al 4%. La quota di Node.js è aumentata dal 3,2% al 4,4%, e la quota di LiteSpeed è passata dal 12,9% al 14,6%.

I miglioramenti più significativi aggiunti durante la formazione della branch principale 1.27.x:

  • Per le connessioni che utilizzano il protocollo QUIC, è stato aggiunto il supporto per l'algoritmo di controllo del sovraccarico di rete CUBIC (RFC 9438), il cui funzionamento prevede un aumento graduale della dimensione della finestra di sovraccarico fino alla perdita di pacchetti, dopodiché la dimensione della finestra viene riportata a un valore precedente alla perdita. Nei test eseguiti, l'uso di CUBIC ha consentito di ridurre il tempo di trasferimento di un file di 500 MB del 24% a latenze di 40 ms e BDP di 750K (Bandwidth Delay Product) e del 73% a latenze di 100 ms e BDP di 9M.
  • Nel modulo stream è stato aggiunto il supporto per il controllo della revoca dei certificati dei client, utilizzando il protocollo OCSP (Online Certificate Status Protocol).
  • Nel modulo stream è stata implementata la supporto della tecnica di verifica della revoca dei certificati OCSP Stapling, che consiste nel fatto che, al momento della negoziazione della connessione TLS, la risposta OCSP certificata dall'autorità di certificazione viene trasmessa dal server che gestisce il sito, senza la necessità di contattare direttamente l'autorità di certificazione.
  • Durante l'avvio e l'aggiornamento della configurazione è stata implementata la memorizzazione nella cache dei certificati SSL, delle chiavi e della CRL (Certificate Revocation List).
  • Sono state aggiunte funzionalità per ridurre il consumo di risorse e diminuire il carico sulla CPU durante l'uso del TLS in configurazioni con un numero elevato di blocchi server e location. Le modifiche aggiunte consentono di utilizzare un contesto SSL già esistente dal blocco padre invece di crearne uno separato per ciascun blocco di configurazione (SSL_CTX in OpenSSL).
  • Nella direttiva «ssl_client_certificate» è stato garantito il supporto per i certificati con informazioni aggiuntive.
  • Per la verifica dei certificati SSL dei client, la direttiva «ssl_client_certificate» non è più obbligatoria.
  • Nel modulo ngx_mail_proxy_module è stata aggiunta la supporto per la modalità LOGIN IMAP specifica di SmarterMail con risposta CAPABILITY non etichettata.
  • Nel modulo ngx_http_proxy_module è stata aggiunta la direttiva «proxy_pass_trailers», che consente di trasmettere i campi dell'intestazione alla fine della risposta dal server proxy al client.
  • Nella direttiva «server», utilizzata nel blocco «upstream», è stata aggiunta la supporto per il parametro «resolve», che include il monitoraggio della modifica Indirizzi IP per il nome di dominio utilizzato e l'aggiornamento automatico della configurazione del blocco «upstream» senza necessità di riavviare nginx in caso di modifica dell'indirizzo.
  • È stata aggiunta la possibilità di utilizzare variabili nelle direttive «proxy_limit_rate», «fastcgi_limit_rate», «scgi_limit_rate» e «uwsgi_limit_rate».
  • Nelle direttive «proxy_bind», «fastcgi_bind», «grpc_bind», «memcached_bind», «scgi_bind» e «uwsgi_bind», e anche come indirizzo client nel modulo ngx_http_realip_module, è consentito specificare indirizzi IPv6 tra parentesi quadre senza numero di porta.
  • Aggiunta la direttiva «keepalive_min_timeout», che definisce il timeout durante il quale nginx non chiuderà la connessione keep-alive con il client.
  • I protocolli TLSv1 e TLSv1.1 sono disabilitati per impostazione predefinita.
  • Risolti i problemi di caricamento lento dei file di configurazione a causa del riesame dello stesso set di certificati TLS, chiavi e elenchi di autorità di certificazione. Accelerato il riavvio della configurazione grazie al riutilizzo di oggetti TLS non modificati, come certificati, chiavi e CRL. Per disabilitare l'ereditarietà degli oggetti durante l'aggiornamento della configurazione è stata aggiunta la direttiva «ssl_object_cache_inheritable».
  • Aggiunta la cache per certificati e chiavi caricati utilizzando variabili nelle direttive (ad esempio, «ssl_certificate /etc/ssl/$ssl_server_name.crt»). Per gestire la cache, sono state aggiunte le direttive «ssl_certificate_cache», «proxy_ssl_certificate_cache», «grpc_ssl_certificate_cache» e «uwsgi_ssl_certificate_cache». Attraverso queste direttive è possibile configurare la dimensione massima della cache, il tempo di validità delle voci e il tempo di pulizia per le voci non utilizzate. Ad esempio: «ssl_certificate_cache max=1000 inactive=20s valid=1m;».
  • Ridotto il consumo di memoria durante l'elaborazione di richieste a lungo termine nelle configurazioni in cui sono utilizzate le direttive «gzip», «gunzip», «ssi», «sub_filter» o «grpc_pass».
  • La dimensione massima delle sessioni SSL memorizzate nella memoria condivisa è stata aumentata a 8192.
  • È stata stabilita l'integrazione con la libreria C Musl.
  • Sono stati effettuati lavori di ottimizzazione delle prestazioni e correzione di errori nell'implementazione di HTTP/3.

Inoltre, vale la pena segnalare la pubblicazione della versione del progetto FreeNginx 1.28.0, che sviluppa un fork di Nginx. Lo sviluppo del fork è guidato da Maxim Dunin, uno dei principali sviluppatori di Nginx. FreeNginx è posizionato come un progetto non commerciale che garantisce lo sviluppo della base di codice di Nginx senza interferenze aziendali. Tra le modifiche specifiche nel ramo FreeNginx 1.28:

  • Il parametro «off» nella direttiva «pid», che disabilita la creazione del file PID.
  • Limitazione dell'intensità della registrazione dei messaggi nel log degli errori per proteggere da un riempimento eccessivo del log con messaggi standard.
  • Implementazione del parametro multipath nella direttiva listen per supportare il Multipath TCP.
  • Supporto per l'intestazione HTTP «Age» per determinare la durata delle registrazioni nella cache.
  • Aggiunta dei metodi di autenticazione XOAUTH2 e OAUTHBEARER nel modulo mail_proxy.

Fonte: opennet.ru

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