【问题标题】:Apache: VirtualHost with [PHP|Python|Ruby] supportApache:支持 [PHP|Python|Ruby] 的 VirtualHost
【发布时间】:2010-11-08 03:33:48
【问题描述】:

我正在试验几种语言(Python、Ruby...),我想知道是否有办法优化我的 Apache 服务器加载 某些模块某些 VirtualHost,例如:

http://myapp1 <- just with Ruby support 
http://myapp2 <- just with Python support
http://myapp3 <- just with Php support
...

谢谢。

【问题讨论】:

  • 你为什么要这个?您是否遇到模块相互干扰的问题?
  • 您好,我没有任何问题,我只是在寻找一种方法,不会让我的服务器在某些域中不使用的模块超载。
  • 我想知道是否有更好的方法来优化这个问题中粗体的使用。

标签: php python ruby apache virtualhost


【解决方案1】:

每个 Apache 工作人员都会加载每个模块,因此无法在 Apache 本身内完成。

您需要做的是将您的语言模块移动到 Apache 工作者外部的进程。

这是通过以下模块为您的语言完成的:

【讨论】:

    【解决方案2】:

    我不认为这是可能的,

    1. 同一线程/分叉的进程可能正在为来自不同虚拟主机的页面提供服务。那么如果它只加载了 python,当它需要服务 ruby​​ 时会发生什么?
    2. 由于原因 1,某些指令仅适用于 Web 服务器,而不是特定于虚拟主机。 MaxRequestsPerChild、LoadModule 等就是这样。

    【讨论】:

      【解决方案3】:

      我认为唯一的方法是拥有一个“代理”网络服务器,将请求分派到真实服务器......

      代理服务器有一个域名列表 -> 服务器端语言,除了透明地重定向到正确的真实服务器之外什么都不做

      有 N 台真实服务器,每台都有特定的配置和支持和加载的单一语言......当然每个服务器都会监听不同的端口,最终只在环回设备上

      Apache mod_proxy 应该可以完成这项工作

      我的 2 美分

      【讨论】:

        【解决方案4】:

        我的想法是几个 apache 进程(每个进程都有不同的配置)监听不同的地址和/或端口,并在前端重定向到相应的服务器的 http 代理(squid 或 apache)。这可能具有缓存的额外优势。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-04
          • 1970-01-01
          • 1970-01-01
          • 2015-06-02
          • 2016-08-08
          相关资源
          最近更新 更多