Wie kann ich feststellen, ob Apache als Prefork oder Worker ausgeführt wird (oder für die Ausführung konfiguriert ist)?
40
Wie kann ich feststellen, ob Apache als Prefork oder Worker ausgeführt wird (oder für die Ausführung konfiguriert ist)?
Antworten:
Das MPM wird zur Kompilierungszeit konfiguriert. Eine Möglichkeit, es später herauszufinden, besteht darin, eine in Modulen kompilierte Liste zu erstellen. Diese Liste enthält das ausgewählte MPM. Die Auflistung kann durch Ausführen der Apache-Binärdatei mit dem Flag -l erfolgen.
Hier finden wir das Modul worker.c, daher führe ich das worker MPM aus.
quelle
apache2ctl -M
aktive Module auflisten.Die Antworten von Series8217 und Andol sind beide falsch.
Die Frage war, wie zu sagen , ob Apache laufen prefork oder Arbeiter. Die Ratschläge der anderen Antworten geben nur Aufschluss über die Standard- MPM (basierend auf kompilierten Modulen), nicht jedoch darüber, ob diese Standardeinstellung oder eine andere Auswahl zurzeit verwendet wird.
Wenn
httpd -V
prefork angezeigt wird, bedeutet dies nur, dass prefork das kompilierte Standard-MPM ist. Dies kann durch Ändern der Einstellungen einer Apache-Konfigurationsdatei wie folgt außer Kraft gesetzt werden:/etc/sysconfig/httpd
unter CentOS / RedHat)HTTPD=/usr/sbin/httpd.worker
Welches MPM gerade ausgeführt wird, können Sie mit diesem Verfahren anzeigen:
curl localhost/server-info
httpd -V
erneut aus - es wird weiterhin Prefork angezeigt, nicht WorkerEndeffekt:
httpd -V
Zeigt die Standardoption an, nicht welche Option aktuell verwendet wirdEs gibt Antworten auf vielen, vielen Websites,
httpd -V
die angeben, ob Apache Prefork oder Worker ausführt. Sie sind alle falsch. Probieren Sie das oben beschriebene Verfahren aus, um sich selbst davon zu überzeugen.quelle
In Ubuntu 14.04
Sagt
event
,prefork
,worker
Sie können es ändern, indem Sie symbolische Links für
mpm_<chosen>
vonmods-available
bismods-enabled
in hinzufügen/etc/apache2
.Es ist immer nur einer erlaubt.
quelle
event
MPM ist nach Angaben von Apache "eine Variante des Worker-MPM mit dem Ziel, Threads nur für Verbindungen mit aktiver Verarbeitung zu verbrauchen".Starten Sie auf RedHat und Derivaten einfach
top
oderps aux
und sehen Sie sich den Namen des httpd-Prozesses an:httpd
bedeutet, dass Apache als Prefork ausgeführt wirdhttpd.worker
bedeutet, es läuft als Arbeiterquelle
Auf RHEL / Fedora / etc, führen
httpd -V
. Sie erhalten eine Ausgabe, die Folgendes umfasst:Hier ist "Server MPM" "Prefork", daher wird auf meinem Server das Prefork-MPM ausgeführt.
quelle
Chris Johnson ist richtig. Gehen Sie zu httpd.conf => fügen Sie diese Zeile hinzu:
Starten Sie Apache neu: /etc/init.d/httpd restart. Greifen Sie dann mit Ihrem Browser auf localhost / server-info zu und lesen Sie den Abschnitt MPM-Name .
quelle
Hier ist eine andere Methode, von der ich erwarte, dass sie zuverlässig ist, um festzustellen, welches MPM verwendet wird. Fügen Sie Folgendes hinzu
httpd.conf
:Überprüfen Sie dann die Überschriften mit
curl -I localhost | grep X-MPM
.quelle
Auf Centos (oder Rhel) können Sie diesen Befehl ausführen:
Wenn Sie sehen
/usr/sbin/httpd.worker
, dass ausgeführt wird, wird das Worker-MPM verwendet. Wenn Sie/usr/sbin/httpd
laufen sehen, wird Prefork verwendetquelle
Die Antwort von Chris Johnson ist richtig.
Nach dem Aktivieren des Info-Moduls, wie in der Apache-Dokumentation ( http://httpd.apache.org/docs/2.2/mod/mod_info.html ) dokumentiert , erhalten Sie mit diesem einen Liner den MPM, den Sie verwenden:
quelle
Eine Möglichkeit, wie ich es in Debian in Distributionen herausfinde, besteht darin, Folgendes auszuführen:
quelle