Oggi voglio parlarti di Nginx, un web server open source in grado di fornire eccellenti prestazioni e ridurre i consumi di memoria e risorse.
Nginx (engine x) è un web server gratuito nato nel 2004 realizzato dal russo Igor Sysoev. Attualmente è utilizzato su circa20 milioni (e più) di siti web come web server, grazie alle alte performance e prestazioni che permette, su tutte velocità e stabilità.
Esistono diversi Web Server, tra i più famosi ricordiamo sicuramente Apache, Lighttpd, LiteSpeed, ma sicuramente Nginx si è dimostrato col tempo una validissima alternativa, in assoluto il più performante in questo settore. Per i meno esperti, vediamo cosa dice il sito ufficiale.
Che cos’è Nginx?
nginx [engine x] e’ un server HTTP e reverse proxy, nonche’ un server mail proxy, scritto da Igor Sysoev. Per molto tempo e’ stato usato principalmente per alcuni siti russi ad alto carico, ad esempio Yandex, Mail.Ru, VKontakte e Rambler; in base ai dati di Netcraft, nell’ottobre 2013 nginx e’ il server HTTP o reverse proxy del 15.08% dei siti a maggiore carico. Alcuni casi di successo sono: Netflix, Wordpress.com, FastMail.FM.
La documentazione ed i sorgenti sono distribuiti in base alla licenza BSD con 2 clausole.
Caratteristiche principali del server HTTP
- Servizio di file statici e index, autoindexing; cache dei descrittori dei file aperti;
- Reverse proxy accelerato con cache; semplice bilanciamento di carico e load balancing;
- Supporto accelerato con cache di server FastCGI, uwsgi, SCGI, e memcached; semplice bilanciamento di carico e load balancing;
- Architettura modulare. Filtri per gzip, intervalli di byte, risposte a blocchi, XSLT, SSI, e filtro per la trasformazione d’immagini. Inclusioni multiple di SSI in una stessa pagina possono essere processate in parallelo se sono gestite da server proxy o FastCGI;
- Supporto a SSL e TLS SNI .
Caratteristiche ulteriori del server HTTP
- Server virtuali name-based e IP-based;
- Supporto a connessioni keep-alive e pipelined;
- Configurazione flessibile;
- Caricamento di una nuova configurazione e aggiornamento dell’eseguibile senza interruzione di servizio ai client;
- Access log in vari formati, log con buffer , e veloce rotazione dei log;
- Redirezione dei codici d’errore 3xx-5xx;
- Modulo di rewrite: trasformazione delle URI con uso di espressioni regolari;
- Esecuzione di funzioni differenti a seconda dell’ indirizzo del client;
- Controllo d’accesso in base a indirizzo IP del client, a password (HTTP Basic authentication), e al risultato di una sottorichiesta;
- Validazione del referer HTTP;
- Metodi PUT, DELETE, MKCOL, COPY, e MOVE;
- Streaming FLV e MP4;
- Limitazione della velocita’ del flusso di risposta;
- Limitazione del numero di connessioni o richieste simultanee da un dato indirizzo;
- Perl embedded.
Piattaforme e sistemi operativi testati
- FreeBSD 3 — 10 / i386; FreeBSD 5 — 10 / amd64;
- Linux 2.2 — 3 / i386; Linux 2.6 — 3 / amd64;
- Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v;
- AIX 7.1 / powerpc;
- HP-UX 11.31 / ia64;
- Mac OS X / ppc, i386;
- Windows XP, Windows Server 2003.
Nginx è rilasciato con licenza BSD ed è stato rilasciato al pubblico per la prima volta nel 2004. Al momento è utilizzato da moltissimi siti web e hosting come reverse proxy di Apache, sia come web server che per il web e la posta. Nginx è in grado di incrementare notevolmente la velocità con la quale vengono serviti file statici ed immagini.