57 votes

Comment Nginx gère-t-il les requêtes HTTP?

Je comprends fil parcouru Apache utilise: chaque connexion s'ouvre un thread et quand la réponse est envoyée, le thread est fermé, libérant des ressources pour les autres threads).

Mais je n'ai pas l'event driven design que Nginx utilise. J'ai lu quelques notions de base sur l'event driven design .. mais je ne comprends pas comment c'est utilisé par nginx pour gérer les requêtes web.

Où puis-je lire et de comprendre comment Nginx est de gérer les connexions à un événement piloté par le chemin, donc je comprends pourquoi il est préférable, plutôt que d'accepter simplement que l'événement basé sur le design est mieux que de fil-driven design.

55voto

Onestone Points 490

Nginx utilise le Réacteur modèle. En gros, c'est monothread (mais peut fourche plusieurs processus pour utiliser plusieurs cœurs). La boucle principale attend pour le système d'exploitation pour signaler un état de préparation de l'événement - par exemple, que les de données est disponible à la lecture, à partir d'une prise, à quel point il est lu dans un tampon et traitées. Le seul thread peut très efficacement servir des dizaines de milliers de connexions simultanées (le thread par connexion modèle échoue à cela à cause de l'énorme commutation de contexte généraux, ainsi que de la grande consommation de mémoire, que chaque thread a besoin de sa propre pile).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X