nginx (pronunciato come "engine-x"), scritto comunemente anche "NGINX", "NginX" e "Nginx", è un web server leggero e ad alte prestazioni, che può essere usato anche come reverse proxy, load balancer, cache HTTP e proxy di posta elettronica (IMAP / POP3).
È stato creato da Igor Sysoev, che ne ha rilasciato la prima versione nel 2004 dopo circa due anni di lavoro. Attualmente è distribuito come software open source sotto licenza BSD-like. Funziona con vari sistemi operativi, tra i quali Unix, Linux, varianti di BSD, macOS, Solaris e Microsoft Windows.
Nel 2011 Sysoev e Maxim Konovalov fondano la Nginx Inc. per fornire prodotti commerciali e supportare il software[1].
L'11 marzo 2019 la Nginx Inc. è stata acquistata dalla società F5 Networks per 670 milioni di dollari americani[2].
Dal 2021 nginx offre supporto commerciale[3] e dal 2013 la possibilità di sottoscrivere un abbonamento per l'uso della versione chiamata nginx plus[4]. Quest'ultimo fornisce funzionalità aggiuntive, come per esempio health check, sessioni persistenti basate su cookie, integrazione di servizi DNS, API per la pulizia della cache, AppDynamic, Datalog, Active-Active HA e un modulo dinamico chiamato Web Application Firewall[5][6].
Descrizione
nginx fornisce rapidamente i contenuti statici con un utilizzo efficiente delle risorse di sistema. È possibile distribuire contenuti dinamici HTTP su una rete che utilizza i gestori FastCGI per gli script, e può servire come bilanciatore di carico[7].
nginx utilizza un approccio asincrono basato su eventi nella gestione delle richieste in modo da ottenere prestazioni più prevedibili sotto stress, in contrasto con il modello del server HTTP Apache che usa un approccio orientato ai thread o ai processi nella gestione delle richieste.[8]
Caratteristiche HTTP di base
- Gestione dei file statici, file di indice, e auto-indicizzazione
- Reverse proxy con caching
- Bilanciamento del carico
- Tolleranza agli errori
- Supporto SSL
- Supporto FastCGI con il caching
- Server virtuali basati su nome ed IP
- Streaming FLV
- Streaming MP4, utilizzando il modulo streaming MP4[9]
- Autenticazione di accesso nelle pagine web
- Compressione gzip
- Capacità di gestire più di 10000 connessioni simultanee
- Riscrittura degli URL
- Log personalizzato
- include server-side
- resistente agli attacchi di Slowloris
- WebDAV
Caratteristiche come mail proxy
Confronto con Apache
nginx è nato dichiaratamente per superare caratteristiche e prestazioni del web server Apache[10]. Concepito per sostenere carichi di lavoro pesanti, usa molta meno memoria di Apache e può sostenere il 400% di richieste al secondo in più[11]. Il rovescio della medaglia consiste in una minore flessibilità, per esempio nella incapacità di ignorare i privilegi di accesso fissati a livello di sistema file per file, una funzionalità prevista in Apache con l'uso dei file .htaccess[12].
In passato, l'aggiunta di moduli di terze parti a Nginx richiedeva la ricompilazione dell'applicazione dai sorgenti con i moduli collegati staticamente. Questo problema è stato parzialmente superato nella versione 1.9.11 del febbraio 2016, con l'aggiunta del caricamento dinamico dei moduli.[13] Tuttavia, i moduli devono ancora essere compilati contemporaneamente a Nginx e non tutti i moduli sono compatibili con questo sistema; alcuni richiedono il vecchio processo di collegamento statico.[14]
Nginx Unit
Nginx Unit è un server di applicazioni web open-source, rilasciato nel 2017 da NGINX, Inc. per indirizzare applicazioni multilingue basate su microservizi[15]. La versione iniziale supportava applicazioni scritte in Go, PHP e Python.[16] Dalla versione 1.11.0, il supporto è stato esteso alle applicazioni Java, Node.js, Perl e Ruby; altre caratteristiche includono la configurazione dinamica, il routing delle richieste e il bilanciamento del carico.[17][18]
Uso
In origine, nginx è stato sviluppato per soddisfare le esigenze di vari siti gestiti da Rambler (un portale russo), per il quale nginx serviva 500 milioni di richieste al giorno a partire da settembre 2008.[19]
Secondo il Web Server Survey Netcraft di marzo 2015,[20] nginx è risultato essere il terzo server web più utilizzato in tutti i domini (14,48% dei siti esaminati) e il secondo server web più utilizzato per tutti i siti "attivi" (14,36% dei siti esaminati). Secondo BuiltWith a marzo 2015 era utilizzato dal 17,1% dei siti della Quantcast Top Million Ranking e la sua crescita all'interno dei primi diecimila, centomila ed un milione era in aumento.[21]
A marzo 2017 Nginx è stato utilizzato dal 12,96% di tutti i domini Italiani registrati.[22]
A gennaio 2021 Netcraft ha stimato che Apache è utilizzato nel 24,63% del primo milione di business sites nel mondo mentre nginx serve il 23,21%[23].
Note
- ^ (EN) About F5 NGINX, su NGINX. URL consultato il 24 settembre 2021.
- ^ (EN) Steven J. Vaughan-Nichols, F5 acquires NGINX: What to expect from the deal, su ZDNet. URL consultato il 3 luglio 2021.
- ^ (EN) Steven J. Vaughan-Nichols, Commercial Support now available for the open-source NGINX Web server, su ZDNet. URL consultato il 24 settembre 2021.
- ^ (EN) NGINX Plus Launched by NGINX Inc., su NGINX. URL consultato il 24 settembre 2021.
- ^ (EN) Load Balancing with NGINX Plus, su NGINX. URL consultato il 24 settembre 2021.
- ^ (EN) NGINX Plus software load balancer, web server, and cache, su NGINX. URL consultato il 24 settembre 2021.
- ^ (EN) Usate nginx per i servizi proxy e di bilanciamento del carico , 11 maggio 2010, Sam Kleinman, Biblioteca Linode
- ^ Configurazione di base Nginx da Sam Kleinman, 21 agosto 2010.
- ^ NginxMP4StreamingLite, su wiki.nginx.org. URL consultato il 22 aprile 2015 (archiviato dall'url originale il 24 gennaio 2015).
- ^ (EN) NGINX vs. Apache: Our View of a Decade-Old Question, su NGINX, 9 ottobre 2015. URL consultato il 24 settembre 2021.
- ^ (EN) Web server performance comparison, su help.dreamhost.com. URL consultato il 24 settembre 2021 (archiviato dall'url originale il 10 dicembre 2017).
- ^ (EN) Apache vs Nginx Performance: Optimization Techniques - SitePoint, su sitepoint.com. URL consultato il 24 settembre 2021.
- ^ CHANGES-1.10, su nginx.org, 31 gennaio 2017.
- ^ (EN) Introducing Dynamic Modules in NGINX 1.9.11 - NGINX, in NGINX, 9 febbraio 2016. URL consultato il 13 gennaio 2017.
- ^ (EN) Kubernetes Nginx php-fpm deployment, su Qualified.One, 13 dicembre 2022.
- ^ (EN) Nginx goes beyond its server roots and launches its application platform, su techcrunch.com, 6 settembre 2017. URL consultato il 15 aprile 2020.
- ^ (EN) CHANGES (TXT), su unit.nginx.org. URL consultato il 15 aprile 2020.
- ^ (EN) March 2020 Web Server Survey, su news.netcraft.com, 20 marzo 2020. URL consultato il 15 aprile 2020.
- ^ (EN) Nginx: the High-Performance Web Server and Reverse Proxy, Linux Journal, 1º settembre 2008. URL consultato il 16 agosto 2009.
- ^ (EN) May 2015 Web Server Survey, su news.netcraft.com, 19 marzo 2015. URL consultato il 21 marzo 2015.
- ^ (EN) nginx Usage Statistics, su trends.builtwith.com, 21 marzo 2015. URL consultato il 21 marzo 2015.
- ^ Statistiche internet in italiano centroli.it, su centroli.it. URL consultato il 1º marzo 2017 (archiviato dall'url originale il 16 febbraio 2017).
- ^ (EN) December 2020 Web Server Survey, su Netcraft News. URL consultato il 24 settembre 2021.
Voci correlate
Altri progetti
Collegamenti esterni
- (EN, RU) Sito ufficiale, su nginx.org.
- Nginx, su packages.debian.org.
- (EN) Nginx, su GitHub.
- Repository sorgenti di Nginx, su github.com.
- (EN) Nginx, su Free Software Directory.
- Cygwin basato su Windows build di Nginx per Windows a 32-bit e Windows a 64-bit, su kevinworthington.com.
- Nginx: High-Performance Web Server e Proxy inverso, per volontà Reese, Set 01, 2008, Linux Journal