Apache http服务器每个虚拟主机一个实例

时间:2011-12-16 05:23:17

标签: apache memory virtualhost httpserver

我有兴趣根据下一个参数使用apache http服务器:

  1. 在单个端口上运行listenin的单个服务器上
  2. 已配置多个虚拟主机,每个域一个
  3. 将每个虚拟主机作为一个实体来运行,并在80
  4. 中进行监听
  5. 能够重新加载一个域配置,而无需重新启动其余域配置。
  6. 我对内存消耗有疑问,如果有的话,我应该如何改进它。

    • 一旦只有一台http服务器在运行,我认为这不会是内存问题(如果我错了,请纠正我)?

    • 或者也许是因为每个实例都包含独立的内存?

    • 应该与主apache配置文件中运行所有VirtuallHosts的内存消耗相同吗?

    非常感谢,我主要想为每个域运行一个实例,因为我希望能够在需要时重新启动每个VirtualHost配置而无需重新启动其他配置。

    感谢名单

2 个答案:

答案 0 :(得分:2)

首先,如果他们都在监听端口80,我认为你不能运行多个apache实例。只有一个进程可以绑定端口

Apache将有几个子进程,进程的所有子进程在端口80上进行listenign,但每个子进程都可以用于任何VirtualHost。

您可以通过在端口80上绑定不同的IP来实现它,因此具有基于IP的VirtualHosts 。或者使用一个Apache作为其他端口上绑定的其他Apache实例的代理。

但重启问题不是一个真正的问题。 Apache可以执行安全重启(在某些发行版上重新加载),其中每个子进程在其正在运行的作业结束后重新加载。所以这是一个透明重启,没有任何HTTP请求被杀死。添加或删除VirtualHost不需要重新启动,需要进行简单的重新加载。

答案 1 :(得分:0)

我必须认为,有些方法可以在没有个别情况的情况下实现您的目标。严重的大型虚拟主机公司使用apache,我很难相信你的需求比他们的需求更复杂。示例:http://httpd.apache.org/docs/2.0/vhosts/mass.html

也许您应该运行两个apache服务器,以便在真正需要时进行滚动重启,这样可以防止任何单个站点崩溃。