Mode de travail Apache
(Tutoriel recommandé : Apache de l'entrée à la maîtrise)
Principe du travail pré-fork
Un processus de contrôle distinct (processus parent) est responsable de la génération des processus enfants, qui sont utilisés pour écouter les demandes et y répondre.
Apache essaie toujours de conserver certains processus enfants de rechange ou inactifs pour les requêtes à venir. De cette façon, le client n'a pas besoin d'attendre que le processus enfant soit généré avant d'obtenir le service. Dans les systèmes Unix, le processus parent s'exécute généralement en tant qu'utilisateur root pour lier le port 80, tandis que le processus enfant généré par Apache s'exécute généralement en tant qu'utilisateur peu privilégié.
Les directives User et Group sont utilisées pour configurer les utilisateurs à faibles privilèges pour les processus enfants. L'utilisateur qui exécute le processus enfant doit disposer d'autorisations de lecture sur le contenu qu'il sert, mais doit disposer du moins d'autorisations possible sur d'autres ressources en dehors du contenu du service.
Fonctionnement du travailleur
Le nombre de threads que chaque processus peut avoir est fixe. Le serveur augmentera ou diminuera le nombre de processus en fonction de la charge.
Un processus de contrôle distinct (processus parent) est responsable de l'établissement des processus enfants. Chaque processus enfant peut établir un nombre ThreadsPerChild de threads de service et un thread d'écoute, qui écoute les demandes d'accès et les transmet au thread de service pour traitement et réponse. Apache essaie toujours de maintenir un pool de threads de service disponible ou inactif.
De cette façon, le client n'a pas besoin d'attendre qu'un nouveau thread ou processus soit établi avant de pouvoir le traiter. Sous Unix, afin de pouvoir lier le port 80, le processus parent est généralement démarré en tant que root. Par la suite, Apache crée des processus et des threads enfants en tant qu'utilisateur doté de privilèges inférieurs. Les directives User et Group sont utilisées pour configurer les autorisations du processus enfant Apache. Bien que le processus enfant doive avoir un accès en lecture au contenu qu'il fournit, il doit disposer du moins de privilèges possible.
De plus, à moins que suexec ne soit utilisé, les autorisations configurées par ces instructions seront héritées par le script CGI.
Événement MPM
Il s'agit du dernier mode de travail d'Apache. Il est très similaire au mode travailleur. La différence est qu'il résout le problème du maintien en vie. longue occupation de connexion.Le problème du gaspillage des ressources de thread.Dans le mode de fonctionnement des événements, certains threads spéciaux seront utilisés pour gérer ces threads de type keep-alive.Quand une vraie demande arrive, la demande sera transmise au thread du serveur. l'exécution est achevée et permet sa libération.
Cela améliore le traitement des requêtes dans les scénarios à forte concurrence. La version Apache2.4 dans les systèmes Unix utilise ce mode.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!