Czy mogę „przeładować” plik konfiguracyjny Apache2 bez problemów?

16

Jest

sudo /etc/init.d/apache2 reload

przerywanie operacji na serwerach WWW obsługiwanych przez apache?

aneuryzm
źródło

Odpowiedzi:

19

Przeładowanie wykonuje „Graceful Restart”.

Z dokumentacji Apache Zatrzymywanie i ponowne uruchamianie :

Sygnał USR1 lub wdzięczny powoduje, że proces nadrzędny doradza dzieciom wyjście po ich bieżącym żądaniu (lub natychmiastowe wyjście, jeśli niczego nie obsługują). Rodzic ponownie czyta swoje pliki konfiguracyjne i ponownie otwiera pliki dziennika. Gdy każde dziecko umiera, rodzic zastępuje je dzieckiem z nowej generacji konfiguracji, która natychmiast zaczyna obsługiwać nowe żądania.

Teoretycznie żadne operacje nie zostaną przerwane, ale nastąpi fala restartowania procesów serwerowych, z pewnymi (zwykle trywialnymi) narzutami.

W efekcie zaangażowanych jest więcej zmiennych, takich jak to, czy używasz preforków, czy robotników, liczby dzieci, które określiłeś, a w przypadku robotników, maksymalną liczbę wątków na dziecko.

harrymc
źródło
1
dobrze. A dokładniej, jeśli mój klient wykonuje zamówienie w sklepie internetowym opartym na php. Jeśli ponownie załaduję apache bez ponownego uruchamiania, czy będzie on miał problemy? dzięki
aneuryzm
Znowu w teorii , tak długo, jak zamówienie klienta jest obsługiwane w jednym wywołaniu php, i dopóki przeładowanie nie jest krytyczne dla prawidłowego funkcjonowania serwerów „starej generacji”, wszystko przejdzie z wdziękiem i dobrze. Ale testowanie w praktyce jest dość łatwe.
harrymc
Zauważ, że skrypty inicjujące są dodawane przez program pakujący. Te dla Apache Linux2 redhat / oracle wysyłają sygnał -HUP podczas wywoływania usługi httpd reload . W celu zapewnienia płynnego restartu należy wywołać httpd graceful, który wywołuje / usr / sbin / apachectl graceful .
David Balažic