Jak mogę skonfigurować VirtualHost bez restartowania serwera Apache?

15

Wspomniałem tutaj o serwerze Apache, ponieważ go używam.

Sadat
źródło

Odpowiedzi:

15

Właśnie obejrzałem tę stronę, ale nie jestem pewien, czy jest ona odpowiednia dla twojej.

Dynamicznie konfigurowany wirtualny hosting masowy

Podstawową ideą jest zastąpienie wszystkich konfiguracji statycznych mechanizmem, który wykonuje je dynamicznie. Ma to wiele zalet:

  1. Twój plik konfiguracyjny jest mniejszy, więc Apache uruchamia się szybciej i zużywa mniej pamięci.
  2. Dodanie hostów wirtualnych polega po prostu na utworzeniu odpowiednich katalogów w systemie plików i wpisów w DNS - nie trzeba ponownie konfigurować ani restartować Apache.

AKTUALIZACJA

Dodawanie wirtualnych hostów bez ponownego uruchamiania Apache

Okazało się, że rozwiązaniem było użycie VirtualDocumentRoot zamiast zwykłego starego ustawienia DocumentRoot dla pojedynczego wirtualnego hosta. Pozwoliło to określić zmienną $ 0 jako część wartości. W rezultacie mogliśmy mieć „VirtualDocumentRoot / somedir / 1 $ ″.

TigerTiger
źródło
24

Wprowadź zmiany w swoich VirtualHosts, a następnie zrób

apache2ctl configtest

Aby upewnić się, że nie ma żadnych zaległych błędów składniowych, i uruchom to:

apache2ctl graceful

lub

/etc/init.d/apache2 graceful

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.

Zasadniczo wszystkie istniejące połączenia pozostają nienaruszone, więc nie jest to to samo, co pełne ponowne uruchomienie - tak zwykle robię to na serwerach produkcyjnych z dziesiątkami witryn.

meder omuraliev
źródło