Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Einführung in die Arbeitsweise von Apache

Einführung in die Arbeitsweise von Apache

王林
王林nach vorne
2020-06-28 17:40:383564Durchsuche

Einführung in die Arbeitsweise von Apache

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.im. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen