Le logiciel de serveur NGINX, développé par le programmeur Igor Sysoev, a été distribué en 2004. L’attention était à l’époque centrée sur le besoin d’un serveur de haute performance, pouvant servir simultanément autant de clients Web que possible, et qui ne soit pas trop gourmand en ressources. Etant donné la propagation croissante de son serveur Web, NGINX a depuis développé, en parallèle de la version libre gratuite, une version payante nommée NGINX Plus avec une assistance intégrée et des fonctionnalités supplémentaires comme un équilibreur de charge, ou load balancer en anglais.
NGINX présente, tout comme Apache, une interface modulaire. Cela signifie que différentes fonctions sont proposés sur les modules correspondants, que les administrateurs choisissent d’activer ou non. Vous avez par exemple le choix entre ces différentes fonctionnalités :
- Application Acceleration (accélération de l’application) : permet un chargement plus rapide des contenus.
- Reverse Proxying (proxy inverse) : permet d’utiliser NGINX comme proxy inverse (http, TCP, UDP) pour l’accélération des chargements Web ou l’utilisation d’un proxy email (IMAP, POP3, SMTP).
- Chiffrement TLS : permet un échange de données sécurisé.
- Gestion de la bande passante : associe la bande passante optimale pour chaque service proposé.
- Load Balancing (équilibreur de charge) : répartit les demandes de manière à décharger le serveur principal.
- Videostreaming (streaming vidéo) : offre une haute performance pour le streaming de fichiers MP4 et FLV.
Tandis qu’Apache ouvre une nouvelle tâche ou processus pour chaque requête client, un serveur NGINX est orienté vers les évènements. De cette manière il peut travailler sur des demandes de manière asynchrone, économisant ainsi de la mémoire vive et du temps. Ce logiciel de serveur est compatible avec un grand nombre de systèmes d’exploitation, notamment Unix/Linux, Mac OS et Windows.