Apache-Arbeitsmodus
(Empfohlenes Tutorial: Apache vom Einstieg bis zur Beherrschung)
Prinzip der Prefork-Arbeit
Ein separater Steuerungsprozess (übergeordneter Prozess) ist dafür verantwortlich, untergeordnete Prozesse zu erzeugen, die zum Abhören von Anfragen und Antworten verwendet werden.
Apache versucht immer, einige freie oder inaktive untergeordnete Prozesse für anstehende Anfragen bereitzuhalten. Auf diese Weise muss der Client nicht auf die Generierung des untergeordneten Prozesses warten, bevor er den Dienst erhält. In Unix-Systemen wird der übergeordnete Prozess normalerweise als Root ausgeführt, um Port 80 zu binden, während der von Apache generierte untergeordnete Prozess normalerweise als Benutzer mit geringen Berechtigungen ausgeführt wird.
Benutzer- und Gruppenanweisungen werden verwendet, um Benutzer mit geringen Berechtigungen für untergeordnete Prozesse zu konfigurieren. Der Benutzer, der den untergeordneten Prozess ausführt, muss über Leseberechtigungen für den von ihm bereitgestellten Inhalt verfügen, muss jedoch über möglichst wenige Berechtigungen für andere Ressourcen außerhalb des Dienstinhalts verfügen.
Funktionsweise des Workers
Die Anzahl der Threads, die jeder Prozess haben kann, ist festgelegt. Je nach Auslastung erhöht oder verringert der Server die Anzahl der Prozesse.
Ein separater Steuerungsprozess (Elternprozess) ist für die Einrichtung von Kindprozessen verantwortlich. Jeder untergeordnete Prozess kann eine ThreadsPerChild-Anzahl von Dienstthreads und einen Überwachungsthread einrichten, der auf Zugriffsanforderungen wartet und diese zur Verarbeitung und Antwort an den Dienstthread weiterleitet. Apache versucht immer, einen freien oder inaktiven Pool von Service-Threads aufrechtzuerhalten.
Auf diese Weise muss der Client nicht darauf warten, dass ein neuer Thread oder Prozess eingerichtet wird, bevor er verarbeitet werden kann. Um unter Unix Port 80 binden zu können, wird der übergeordnete Prozess üblicherweise als Root gestartet. Anschließend erstellt Apache untergeordnete Prozesse und Threads als Benutzer mit geringeren Rechten. Die Benutzer- und Gruppenanweisungen werden zum Konfigurieren der Berechtigungen des untergeordneten Apache-Prozesses verwendet. Obwohl der untergeordnete Prozess Lesezugriff auf die von ihm bereitgestellten Inhalte haben muss, sollten ihm möglichst wenige Privilegien gewährt werden.
Außerdem werden die durch diese Anweisungen konfigurierten Berechtigungen vom CGI-Skript geerbt, sofern suexec nicht verwendet wird.
Event MPM
Dies ist der neueste Arbeitsmodus von Apache. Er ist dem Worker-Modus sehr ähnlich. Der Unterschied besteht darin, dass er das Problem des Keep-Alive löst Das Problem der verschwendeten Thread-Ressourcen ist, dass einige spezielle Threads zur Verwaltung dieser Keep-Alive-Threads verwendet werden Die Ausführung ist abgeschlossen und kann freigegeben werden.
Dies verbessert die Anforderungsverarbeitung in Szenarien mit hoher Parallelität. Die Apache2.4-Version in Unix-Systemen verwendet diesen Modus.
Das obige ist der detaillierte Inhalt vonEinführung in die Arbeitsweise von Apache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!