Zastavení a restartování serveru Apache HTTP


Graceful Restart

Signal: USR1 apachectl -k graceful

Signál USR1 nebo graceful způsobí, že nadřazený proces poradí dětem, aby opustily po jejich aktuálním požadavku (nebo aby okamžitě opustily, pokud „znovu nic neslouží). Nadřazený uživatel znovu načte své konfigurační soubory a znovu otevře své soubory protokolu. Jakmile každé dítě zemře, nadřazený jej nahradí dítětem z nové generace konfigurace, které začne okamžitě poskytovat nové požadavky.“

Tento kód je navržen tak, aby vždy respektoval direktivu řízení procesů MPM, takže počet procesů a vláken dostupných pro obsluhu klientů bude během procesu restartu udržován na příslušných hodnotách. Dále respektuje StartServers následujícím způsobem: pokud po jedné vteřině alespoň StartServers nové děti nebyly vytvořeny, pak je vytvořte natolik, aby se uvolnilo uvolnění. Proto se kód snaží zachovat počet dětí odpovídající aktuálnímu zatížení serveru a respektovat vaše přání pomocí parametru StartServers.

Uživatelé mod_status si všimne, že statistika serveru není při odeslání USR1 nastavena na nulu. Tento kód byl napsán tak, aby minimalizoval dobu, po kterou server není schopen vyhovět novým požadavkům (operační systém je zařadí do fronty, takže se v žádném případě neztratí), a aby respektoval vaše tuningové parametry. Udělejte to, musí udržovat výsledkovou tabulku používanou ke sledování všech dětí napříč generacemi.

Stavový modul také použije G k označení dětí, které jsou stále slouží žádosti zahájené před ladným restartováním.

V současné době neexistuje způsob, jak by skript rotace protokolů používající USR1 jistě věděl, že všechny děti, které píší protokol před restartem byl dokončen. Doporučujeme použít vhodné zpoždění po odeslání signálu USR1, než se starým protokolem něco uděláte. Například pokud většina vašich zásahů trvá méně než 10 minut na dokončení pro uživatele na odkazech s nízkou šířkou pásma, pak můžete počkat 15 minut, než uděláte cokoli se starým protokolem.

Při restartování se nejprve spustí kontrola syntaxe, aby se zajistilo, že v konfiguračních souborech nedojde k žádným chybám. Pokud má váš konfigurační soubor chyby, zobrazí se chybová zpráva o této syntaktické chybě a server odmítne restartovat. Tím se vyhnete situaci, kdy se server zastaví a poté se nemůže restartovat, takže vám zůstane nefunkční server.

Stále to nezaručuje, že se server restartuje správně. Chcete-li zkontrolovat sémantiku konfiguračních souborů i syntaxi, můžete zkusit spustit httpd jako uživatel bez oprávnění root. Pokud nebudou žádné chyby, pokusí se otevřít své zásuvky a protokoly a selže, protože není root (nebo proto, že aktuálně spuštěný httpd již má tyto porty svázané). Pokud selže z jakéhokoli jiného důvodu je to pravděpodobně chyba konfiguračního souboru a tato chyba by měla být opravena před vydáním ladného restartu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *