HTTP-сервер Apache, один экземпляр на виртуальный хост

Меня интересовала работа с http-сервером apache на основе следующих параметров:

  1. На одном сервере работает прослушивание в одном порту
  2. Настроив несколько виртуальных хостов, по одному на домен
  3. запуск каждого виртуального хоста в качестве экземпляра, прослушивающего порт 80
  4. удалось перезагрузить одну конфигурацию домена без перезапуска остальных.

У меня есть сомнения по поводу потребления памяти, и если есть, как мне его улучшить.

  • Я не думаю, что это будет проблемой с памятью (поправьте меня, если я ошибаюсь), поскольку работает только один http-сервер?

  • или, может быть, да, потому что каждый экземпляр потребляет независимую память?

  • должно быть такое же потребление памяти, как при запуске всех VirtuallHosts в основном файле конфигурации apache?

Большое спасибо, в основном я хочу запускать один экземпляр для каждого домена, потому что я хочу иметь возможность перезапускать каждую конфигурацию VirtualHost, когда это необходимо, без необходимости перезапуска других.

спасибо


person arrrrgv    schedule 16.12.2011    source источник


Ответы (2)


Во-первых, я не думаю, что вы можете запустить несколько экземпляров Apache, если все они прослушивают порт 80. Только один процесс может привязать порт.

У Apache будет несколько дочерних процессов, все дочерние процессы прослушиваются на порту 80, но каждый дочерний процесс может использоваться для любого VirtualHost.

Этого можно добиться, привязав разные IP-адреса к порту 80, чтобы иметь виртуальные хосты на основе IP. Или используя один Apache в качестве прокси для других экземпляров Apache, привязанных к другим портам.

Но проблема перезагрузки не является реальной проблемой. Apache может выполнять безопасный перезапуск (перезагрузка в некоторых дистрибутивах), при котором каждый дочерний процесс перезагружается после завершения его текущей работы. Так что это прозрачный перезапуск без уничтожения каких-либо HTTP-запросов. Добавление или удаление VirtualHost не требует перезагрузки, достаточно простой перезагрузки.

person regilero    schedule 16.12.2011

Я должен думать, что есть способы добиться того, чего вы хотите, без отдельных экземпляров. Серьезно крупные виртуальные хостинговые компании используют apache, мне трудно поверить, что ваши потребности более сложны, чем их. Пример: http://httpd.apache.org/docs/2.0/vhosts/mass.html

Возможно, вам следует запустить два сервера Apache, чтобы выполнить последовательный перезапуск, когда это действительно необходимо, что также предотвратит отключение любого отдельного сайта.

person Ted Johnson    schedule 16.12.2011