# Nginx

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.
L'11 marzo 2019 la Nginx Inc. è stata acquistata dalla società F5 Networks per 670 milioni di dollari americani.
Dal 2021 nginx offre supporto commerciale e dal 2013 la possibilità di sottoscrivere un abbonamento per l'uso della versione chiamata nginx plus. 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.

## 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.
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.

### 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
* 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

* Proxy SMTP, POP3 e IMAP
* Supporto per STARTTLS
* Supporto SSL

### Confronto con Apache

nginx è nato dichiaratamente per superare caratteristiche e prestazioni del web server Apache. Concepito per sostenere carichi di lavoro pesanti, usa molta meno memoria di Apache e può sostenere il 400% di richieste al secondo in più. 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.
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. 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.

### Nginx Unit

Nginx Unit è un server di applicazioni web open-source, pubblicato nel 2017 da NGINX, Inc. per indirizzare applicazioni multilingue basate su microservizi. La versione iniziale supportava applicazioni scritte in Go, PHP e Python. 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.

### 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.
Secondo il Web Server Survey Netcraft di marzo 2015, 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.
A marzo 2017 Nginx è stato utilizzato dal 12,96% di tutti i domini Italiani registrati.
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%.