在同一台机器上多个独立的apache守护进程

我想问一个问题,关于是否可以在同一台机器上运行多个单独的Apache守护程序。 我不提到多个Apache进程。 我知道这是可行的。 我正在谈论完全单独的守护进程。 我熟悉VirtualHosts的概念,知道如何在同一台机器上运行多个网站,但这不是我所需要的。

详细地说,我在一台机器上运行一个Web应用程序。 apacheconfiguration文件将web请求指向相关位置或wsgi应用程序。 不过,我需要在同一台机器上设置一个反向代理。 反向代理的configuration文件将不断更新,条目越来越多。 出于这个原因,我希望有一个单独的Apache守护进程来运行反向代理,以便反向代理的Apacheconfiguration文件上的任何可能的语法错误都不会影响/崩溃Web应用程序。 首先,这是要走的路吗? 还是有另一种方法来隔离2个应用程序(Web应用程序,反向代理),以便它们不会互相影响? 如果是,那怎么可能?

提前致谢。

你绝对可以做到这一点 – 每个守护进程需要自己的configuration文件和(非常重要的)不同的TCP端口,他们听。 您不能让多个进程在单个端口上进行侦听。

您不需要2个独立的守护进程,这可以通过基于端口的虚拟主机完成。

对不起,我读了你的问题不留神。

如果您从源代码安装apache,只需在2个独立的目录中安装2个单独的安装:/ opt / apache2_webapp和/ opt / apache2_rproxy。

如果你想使用包pipe理器,最简单的方法就是将其中一台服务器安装到chroot中。 例如,在Debian / Ubuntu中有非常方便的Multistrap工具。

如果您想使用相同的软件包来运行2个独立的服务器,则应该在Debian / Ubuntu中复制init脚本,设置目录,pid文件目录,日志目录,数据目录以及其他名称,例如:

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 

然后更改新的init脚本和configuration文件中的所有path,尝试启动/停止新的init脚本来修复可能的错误,并将新的init脚本添加到所需的运行级别。

PS恕我直言,使用2个单独的守护进程是矫枉过正。 您可以设置基于端口的虚拟主机解决scheme,并创build脚本,该脚本将在每个反向代理configuration更改之前运行apache2ctl configtest ,并在testing失败时放弃此更改。