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

Nginx

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.

Vai al sito ufficiale di Nginx Web Server