Kann ich die Apache2-Konfigurationsdatei ohne Probleme neu laden?

16

Ist

sudo /etc/init.d/apache2 reload

die Operationen auf den von Apache gehosteten Webservern zu unterbrechen?

aneuryzm
quelle

Antworten:

19

Reload führt einen "Graceful Restart" durch.

Aus der Apache-Dokumentation Stoppen und Neustarten :

Das USR1-Signal oder das anmutige Signal veranlasst den übergeordneten Prozess, die Kinder anzuweisen, nach ihrer aktuellen Anforderung zu beenden (oder sofort zu beenden, wenn sie nichts bedienen). Das übergeordnete Element liest die Konfigurationsdateien erneut und öffnet die Protokolldateien erneut. Wenn jedes Kind stirbt, ersetzt es das Elternteil durch ein Kind aus der neuen Generation der Konfiguration, das sofort neue Anforderungen zu bearbeiten beginnt.

Theoretisch werden keine Operationen unterbrochen, aber es wird eine Welle von Serverprozessen geben, die neu gestartet werden, mit einigem (normalerweise trivialem) Overhead.

Tatsächlich sind weitere Variablen beteiligt, z. B. ob Sie Prefork oder Worker verwenden, die Anzahl der von Ihnen angegebenen Kinder und im Fall von Worker die maximale Anzahl der Threads pro Kind.

Harrymc
quelle
1
in Ordnung. Genauer gesagt, wenn mein Kunde eine Bestellung in einem PHP-basierten E-Shop ausführt. Wenn ich Apache neu lade, ohne neu zu starten, wird er Probleme haben? danke
aneuryzm
Nochmals theoretisch : Solange der Kundenauftrag in einem PHP-Aufruf bearbeitet wird und das Neuladen nicht entscheidend für die ordnungsgemäße Funktion von Servern der "alten Generation" ist, werden alle ordnungsgemäß und gut verlaufen. Aber es ist einfach genug, um es in der Praxis zu testen.
Harrymc
Beachten Sie, dass die Init-Skripte vom Packager hinzugefügt werden. Die für redhat / oracle linux apache v2.2 senden ein -HUP-Signal, wenn sie den Dienst httpd reload aufrufen . Für einen ordnungsgemäßen Neustart sollte httpd graceful aufgerufen werden, das / usr / sbin / apachectl graceful aufruft .
David Balažic