Назад | Перейти на главную страницу

Как я могу настроить VirtualHost без перезапуска веб-сервера Apache?

Я упомянул здесь веб-сервер Apache, потому что я использую его.

Внесите любые изменения в свои VirtualHosts, затем выполните

apache2ctl configtest

Чтобы убедиться, что нет выдающихся синтаксических ошибок, запустите следующее:

apache2ctl graceful

или

/etc/init.d/apache2 graceful

USR1 или изящный сигнал заставляет родительский процесс посоветовать дочерним процессам выйти после их текущего запроса (или немедленно выйти, если они ничего не обслуживают). Родитель перечитывает свои файлы конфигурации и повторно открывает файлы журнала. Когда каждый дочерний элемент умирает, родитель заменяет его дочерним элементом из нового поколения конфигурации, который немедленно начинает обслуживать новые запросы.

По сути, любые существующие соединения остаются нетронутыми, поэтому это не то же самое, что полный перезапуск - так я обычно делаю это на производственных серверах с десятками сайтов.

Я только что взглянул на эту страницу, но не уверен, насколько она актуальна для вашей.

Динамически настраиваемый массовый виртуальный хостинг

Основная идея состоит в том, чтобы заменить все статические конфигурации механизмом, который их динамически обрабатывает. Это дает ряд преимуществ:

  1. Ваш файл конфигурации меньше, поэтому Apache запускается быстрее и использует меньше памяти.
  2. Добавление виртуальных хостов - это просто вопрос создания соответствующих каталогов в файловой системе и записей в DNS - вам не нужно перенастраивать или перезапускать Apache.

ОБНОВИТЬ

Добавление виртуальных хостов без перезапуска Apache

Оказалось, что решение заключалось в использовании VirtualDocumentRoot вместо простой старой настройки DocumentRoot для одного виртуального хоста. Это позволило указать переменную $ 0 как часть значения. В итоге мы получили «VirtualDocumentRoot / somedir / $ 1».