La programmazione del server NGINX rilasciato nel 2004 fu iniziata dallo sviluppatore russo Igor Sysoev. Allora come oggi il focus era posto sullo sviluppo di un server che si distinguesse, oltre che per performance di alto livello e per poter servire contemporaneamente il maggior numero possibile di client, per un consumo di risorse esiguo. Considerata la crescente popolarità e diffusione di questo server web, nel 2011 Sysoev fonda la NGINX inc., società ora responsabile degli ulteriori sviluppi del software e che offre, oltre alla versione standard gratuita (NGINX Open Source), anche NGINX Plus, una soluzione a pagamento con assistenza e funzioni aggiuntive, come ad esempio un load balancing migliore.
Come Apache, NGINX è basato su una struttura modulare. Questo significa che le diverse funzioni vengono messe a disposizione attraverso diversi moduli, che gli amministratori possono attivare o disattivare. Ad esempio, i moduli vi mettono a disposizione le seguenti funzioni:
- L’application acceleration (accelerazione delle applicazioni), permette una trasmissione più veloce dei contenuti.
- Il modulo reverse proxy permette di usare NGINX come reverse proxy (http, TCP, UDP) per la web acceleration o come e-mail proxy.
- La crittografia TLS permette un trasferimento di dati sicuro.
- La gestione della larghezza di banda offre a tutti i servizi la larghezza di banda ottimale.
- Il load balancing (bilanciamento del carico) alleggerisce il server principale, distribuendo le richieste.
- Il modulo video streaming offre alte prestazioni nello streaming di MP4 e FLV.
Mentre Apache apre per ogni richiesta del client un nuovo thread o inizia un processo, il server NGINX ha un approccio basato su eventi, che gli permette di elaborare le richieste in maniera asincrona, risparmiando memoria locale e tempo. Il software del server è supportato da numerosi sistemi operativi, tra cui le numerose varianti Unix e Linux, Mac OS e Windows.