1

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

  1. 在单个端口上运行侦听的单个服务器上
  2. 配置了多个虚拟主机,每个域一个
  3. 将每个虚拟主机作为实例运行在 80 端口中侦听
  4. 能够重新加载一个域配置而无需重新启动其余配置。

我对内存消耗有疑问,如果有,我应该如何改进它。

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

  • 或者可能是因为每个实例都消耗独立的内存?

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

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

谢谢

4

2 回答 2

2

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

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

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

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

于 2011-12-16T16:11:57.150 回答
0

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

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

于 2011-12-16T06:06:56.103 回答