Возможно ли использование нескольких экземпляров Apache2 MPM-prefork MPM-worker на одном хост-компьютере Ubuntu?

У меня есть работающий экземпляр Apache2/MPM-Worker под управлением Django. Я также хочу запустить экземпляр Apache2/MPM-prefork для запуска некоторых приложений Drupal6 на одном хост-компьютере и использовать широкий выбор модулей PHP, работающих на модели prefork.

Я планирую использовать свой экземпляр MPM-worker для обратного прокси-сервера к экземпляру Apache2-prefork для URL, начиная с myhost.com/drupal6/. Это кажется теоретически выполнимым / настраиваемым, если второй экземпляр Apache2-prefork настроен на прослушивание внутреннего порта, скажем, 127.0.0.1:8080, а мой текущий Apache2-worker настроен на передачу через прокси и обратный переход к нему для URL-адресов drupal6,

Однако, как мне скомпилировать или установить версию apache2-prefork, чтобы она имела другое исполняемое имя, чем / usr / sbin / apache2, например / usr / sbin / apache2p, и, таким образом, apache2ctl имеет другое имя, скажем, apache2pctl, и это apache2pctl вызывает / usr / sbin / apache2p вместо /usr/sbin/apache2... и так далее (например, / etc / apache2p), чтобы я мог запускать и перезапускать два экземпляра независимо?

Насколько я понимаю, ни один исполняемый файл apache2 не может быть скомпилирован с модулями MPM-prefork и MPM-worker, поэтому, похоже, мне нужны две отдельные версии разновидностей apache2 MPM. Но тогда я должен вызывать и контролировать их по отдельным именам, я полагаю. Я посмотрел на параметры конфигурации для apache2, и мне немного не по себе от компиляции второй версии apache2 с помощью prefork, потому что я не уверен, что могу установить все параметры, чтобы ни один из моих текущих файлов apache2 не был перезаписан. Есть ли способ?

Существует ли стандартное решение для отдельной установки и управления исполняемыми файлами prefork и работающего apache2 на одном компьютере без их наступления друг на друга во время установки или эксплуатации?

2 ответа

Apache wiki на wiki.apache.org имеет ответ для меня. Моя главная проблема не заключалась в том, чтобы при создании нового apache2 в моей текущей версии apache2 не возникало проблем с файлами, и раньше я не видел опции конфигурации, позволяющей контролировать, куда копируется apache2ctl. Тем не менее, он есть, и эта страница заставляет меня поверить, что все файлы apache2 учтены и что config.layout позволяет указать, куда все они идут. http://wiki.apache.org/httpd/DistrosDefaultLayout:

Вам не нужно иметь две установленные копии, но вам нужны две разные конфигурации.

Все зависит от операционной системы, которую вы используете, я могу рассказать вам, как это сделать в Debian и Ubuntu:

  1. Выберите имя для вашего нового экземпляра. Допустим, ДРУПАЛ.
  2. Создайте новый каталог конфигурации для вашего нового экземпляра, скопируйте оригинал: cp -a /etc/apache2 /etc/apache2-DRUPAL
  3. создать ссылку на скрипт запуска: ln -s /etc/init.d/apache2 /etc/init.d/apache2-DRUPAL

Теперь отредактируйте вашу новую конфигурацию в /etc/apache2-DRUPAL. Вы можете изменить имя пользователя веб-сервера в /etc/apache2-DRUPAL/envvars, порты прослушивания в /etc/apache2-DRUPAL/ports.conf и т. Д.

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

После того, как вы закончите настройку, выполните эти команды:

    service apache2-DRUPAL start
    update-rc.d apache2-DRUPAL defaults

Первый проверяет конфигурацию и запускает новый экземпляр. Если это не работает, выполните обычную отладку Apache, чтобы заставить его работать.

Вторая строка просто создает ссылки по умолчанию для запуска.

Если вы не хотите запускать команды Apache без прохождения /etc/init.d/apache2-DRUPAL, вы должны запустить . /etc/apache2-DRUPAL/envvars прежде чем запустить их. Я думаю, что это специфично для Debian/Ubuntu. Когда вы сделаете это, вы заметите, что apache2ctl, apache2 -S и другие работают из вашей новой конфигурации.

Вот и все. Нет необходимости в ручной установке и загромождении вашей системы:)

НТН.

PS: https://wiki.apache.org/httpd/RunningMultipleApacheInstances кажется хорошей отправной точкой для дальнейшего изучения.

Другие вопросы по тегам