L'architecture de Nginx est conçue pour atteindre des performances, une stabilité et une évolutivité élevées. Vous trouverez ci-dessous une description détaillée des composants clés de l' Nginx architecture :
Master Process
Il s'agit du processus principal de Nginx, également appelé processus parent. Sa responsabilité est de gérer les processus de travail et d'autres tâches de gestion courantes. Le master process lit et traite la configuration, puis crée des processus de travail pour gérer les demandes des clients.
Worker Process
Une fois créés par master process, les processus de travail deviennent des processus enfants de Nginx. Le nombre de processus de travail peut être configuré pour répondre aux exigences de performances et de ressources du système. Chacun worker process fonctionne indépendamment, ne partage pas de mémoire et ne communique pas directement entre eux, ce qui améliore la stabilité de Nginx.
Event-driven Architecture
Nginx utilise un event-driven architecture pour gérer les requêtes. Au lieu d'utiliser des threads séparés pour chaque demande, Nginx utilise des fonctions asynchrones pour gérer les événements. Cela permet à un seul worker process de gérer plusieurs requêtes simultanément, optimisant les ressources système et garantissant des performances élevées.
Event Module
Nginx prend en charge divers event module pour travailler avec le système d'exploitation et l'infrastructure réseau. Ces module permettent Nginx d'interagir avec le noyau et d'éviter les blocages et les attentes inutiles, réduisant ainsi la charge sur le système.
Worker Connections
Il s'agit du nombre de connexions que chacun worker process peut gérer simultanément. Cette configuration permet de personnaliser le nombre de connexions afin de garantir des performances optimales en fonction des ressources système et du trafic des requêtes client.
Proxy et Load Balancing
Nginx peut agir en tant que proxy serveur, ce qui lui permet d'acheminer les demandes des clients vers les serveurs d'applications dorsaux du système. Cela permet le déploiement d'applications distribuées et load balancing sur plusieurs serveurs, améliorant ainsi les performances et la fiabilité.
Grâce à son architecture flexible et performante, Nginx il est devenu l'un des serveurs et proxys Web les plus populaires largement utilisés à travers le monde, répondant aux demandes croissantes de traitement des demandes et des données sur Internet.