Я хотел бы задать вопрос, можно ли иметь несколько отдельных демонов Apache, работающих на одной машине. Я не говорю о нескольких процессах apache. Я знаю, что это выполнимо. Я говорю о совершенно разных демонах. Я знаком с концепциями VirtualHosts и знаю, как запускать несколько веб-сайтов на одном компьютере, но это не то, что мне нужно.
Более подробно, я запускаю веб-приложение на машине. Файлы конфигурации apache направляют веб-запросы в соответствующее место или приложение wsgi. Однако мне нужно настроить обратный прокси на том же компьютере. Файл конфигурации обратного прокси будет постоянно обновляться, добавляя все больше и больше записей. По этой причине я хотел бы иметь отдельный демон apache для запуска обратного прокси-сервера, чтобы любая возможная синтаксическая ошибка в файле конфигурации Apache обратного прокси-сервера не влияла / не приводила к сбою веб-приложения. Прежде всего, стоит ли это делать? Или есть другой способ изолировать 2 приложения (веб-приложение, обратный прокси), чтобы они не влияли друг на друга? Если да, то как это возможно?
Заранее спасибо.
Вам не нужны 2 отдельных демона, это можно сделать с помощью виртуальных хостов на основе портов.
Вы абсолютно можете это сделать - каждому демону нужен свой собственный файл конфигурации и (что очень важно) разные TCP-порты, которые они прослушивают. У вас не может быть нескольких процессов, прослушивающих один порт.
Извините, я невнимательно прочитал ваш вопрос.
Если вы устанавливаете apache из исходного кода, просто установите две отдельные установки в двух отдельных каталогах: / opt / apache2_webapp и / opt / apache2_rproxy.
Если вы хотите использовать менеджер пакетов, самый простой способ - установить один из серверов в chroot. Например, в Debian / Ubuntu очень удобно Multistrap инструмент.
Если вы хотите использовать один и тот же пакет для запуска двух отдельных серверов, вам следует скопировать сценарий инициализации, каталог настроек, каталог файлов pid, каталог журналов, каталог данных с другими именами, например, в Debian / Ubuntu:
cp -r /etc/init.d/apache2 /etc/init.d/apache2_rproxy
cp -r /etc/apache2 /etc/apache2_rproxy
cp -r /etc/default/apache2 /etc/default/apache2_rproxy
cp -r /var/run/apache2 /var/run/apache2_rproxy
cp -r /var/log/apache2 /var/log/apache2_rproxy
cp -r /var/www /var/www_rproxy
Затем измените все пути в новом скрипте инициализации и файлах конфигурации, попробуйте запустить / остановить новый скрипт инициализации, чтобы исправить возможные ошибки, и добавьте новый скрипт инициализации на требуемые уровни выполнения.
P.S. ИМХО, использовать 2 отдельных демона - это излишне. Вы можете настроить решение виртуального хоста на основе портов и создать сценарий, который будет запускать apache2ctl configtest
перед каждым изменением конфигурации обратного прокси-сервера и отменяйте это изменение, если тест не прошел.