【问题标题】:Apache http server one instance per Virtual hostApache http 服务器每个虚拟主机一个实例
【发布时间】:2012-01-21 17:49:07
【问题描述】:

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

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

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

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

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

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

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

感谢

【问题讨论】:

    标签: apache memory virtualhost httpserver


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-04-08
        • 1970-01-01
        • 1970-01-01
        • 2019-11-03
        • 2013-08-02
        • 2017-11-05
        • 2021-08-20
        • 2018-05-04
        • 2016-11-06
        相关资源
        最近更新 更多