Qu’est-ce que Nginx ?
NGINX est un logiciel libre de serveur Web (ou HTTP) ainsi qu'un proxy inverse écrit par Igor Sysoev, dont le développement a débuté en 2002 pour les besoins d'un site russe à très fort trafic (Rambler). Sa première sortie publique remonte à octobre 2004. Igor a d’abord conçu le logiciel comme une réponse au problème du C10k, qui est un problème de performance lié à la gestion de 10 000 connexions simultanées.
Nginx est conçu pour offrir une faible utilisation de la mémoire et une grande simultanéité. Plutôt que de créer de nouveaux processus pour chaque requête Web, Nginx utilise une approche asynchrone et événementielle où les requêtes sont traitées dans un seul thread. Avec Nginx, un processus maître peut contrôler plusieurs processus de travailleurs. Le maître gère les processus du travailleur, tandis que les travailleurs effectuent le traitement proprement dit. Comme Nginx est asynchrone, chaque requête peut être exécutée simultanément par le travailleur sans bloquer les autres requêtes.
NGINX est donc :
- un système asynchrone par opposition aux serveurs synchrones où chaque requête est traitée par un processus dédié. Au lieu d'exploiter une architecture parallèle et un multiplexage temporel des tâches par le système d'exploitation, NGINX utilise les changements d'état pour gérer plusieurs connexions en même temps ; le traitement de chaque requête est découpé en de nombreuses mini-tâches et permet ainsi de réaliser un multiplexage efficace entre les connexions. Afin de tirer parti des ordinateurs multiprocesseurs, plusieurs processus peuvent être démarrés. Ce choix d'architecture entraine des performances très élevées, ainsi qu'une charge et une consommation de mémoire très inférieures à celles des serveurs HTTP classiques comme Apache.
- très modulaire : un noyau minimal et de nombreux modules, venant compléter les fonctions de base. Chaque module peut agir comme un filtre sur le contenu en entrée, en sortie ou intermédiaire (proxy) par le biais de nombreuses fonctions de rappel (callbacks). Ainsi, à titre d'exemple, un contenu dynamique peut être compressé à la volée par le module « gzip » avant envoi.
- s'appuie sur des structures de données minimales, mais optimales, visant à réduire le nombre d'appels système, en particulier pour tout ce qui a trait à l'allocation de mémoire.
NGINX est utilisé par de nombreux sites web populaires, tels que Netflix, Facebook, YouTube ou Wikipédia. Selon les estimations de W3techs, il représente 34,1 % des serveurs web dans le monde en février 2024.
Pourquoi un fork ?
En 2011, Sysoev, Dounin et Andrew Alexeev ont fondé Nginx Inc., une entreprise qui propose du support commercial pour Nginx. En 2019, Nginx Inc. a été rachetée par F5, une société américaine spécialisée dans les solutions réseau, pour 670 millions de dollars.
Selon l’annonce de Dounin, il a rompu ses liens avec F5 lorsque le bureau de Moscou a été fermé en 2022, et il a continué à participer au développement de Nginx en tant que bénévole. Il n’y avait pas de problème avec le fait que F5 ne le rémunérait pas, mais il a pris ombrage du fait que la direction de F5 a changé de mains et a interféré avec la politique de sécurité de Nginx, ignorant les développeurs et la communauté, ce qu’il considère comme une « violation de l’accord ».
De plus, le développement de Nginx est désormais entièrement sous le contrôle de F5 et n’est plus sous celui de Dounin, et Nginx ne peut plus être considéré comme un logiciel libre et open source développé pour le bien public.
Face à cette situation, il a annoncé le lancement d’un nouveau fork de Nginx appelé “freenginx”, dans le but de « protéger le développement de Nginx des actions égoïstes des entreprises ».
Envoyé par Dounin
Le site web de Freenginx se présente comme un projet dont l’objectif est de « maintenir le développement de Nginx libre des actions arbitraires des entreprises ». Il n’y a pas encore de code source disponible, mais Dounin a indiqué qu’il travaillait dessus et qu’il sollicitait l’aide et les contributions de la communauté.
Il reste à voir quel sera l’impact de Freenginx sur le développement de Nginx et sur le marché des serveurs web. Dounin est l’un des trois développeurs principaux de Nginx, avec Sysoev qui s’est retiré du développement en 2022, et son départ risque de porter un coup à la qualité et à l’innovation de Nginx.
D’autre part, Freenginx devra faire face à la concurrence d’autres serveurs web open source, tels qu’Apache, Lighttpd ou Caddy, et devra convaincre les utilisateurs de Nginx de migrer vers sa version.
Freenginx sera-t-il un succès ou un échec ? L’avenir nous le dira.
Sources : statistiques sur l'utilisation des serveurs web, annonce de Maxim Dounin
Et vous ?
Que pensez-vous de la décision de Dounin de créer un fork de Nginx ?
Pensez-vous que Freenginx sera capable de rivaliser avec Nginx et les autres serveurs web ?
Quels sont les avantages et les inconvénients de l’utilisation de Nginx pour votre site web ?
Quelle est votre opinion sur le rôle de F5 dans le développement de Nginx ?
Quelle est l’importance de la liberté et de l’ouverture du logiciel pour vous ?