Apache:支持[PHP|Python|Ruby]的虚拟主机

1 投票
4 回答
1465 浏览
提问于 2025-04-15 12:41

我正在尝试学习几种编程语言(比如Python、Ruby等),我想知道有没有办法优化我的Apache服务器,让它只在特定的虚拟主机中加载某些模块,比如:

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

谢谢。

4 个回答

0

我觉得唯一的办法就是建立一个“代理”网站服务器,它负责把请求转发到真正的服务器上……

这个代理服务器有一个域名和服务器端语言的对应列表,它的工作就是透明地把请求重定向到正确的真实服务器上。

有N个真实服务器,每个服务器都有特定的配置,并且只支持一种语言……当然,每个服务器会监听不同的端口,最终可能只在本地回环设备上工作。

Apache的mod_proxy功能可以完成这个任务。

这是我个人的看法。

0

我觉得这不太可能,因为:

  1. 同一个线程或者分叉的进程可能会为不同的虚拟主机提供服务。所以如果它只加载了Python,当需要提供Ruby服务时会发生什么呢?
  2. 基于第一个原因,有些指令是针对整个网络服务器的,而不是特定于某个虚拟主机的。比如MaxRequestsPerChild、LoadModule等指令就是这样的。
3

每个Apache工作进程都会加载所有模块,所以在Apache内部是无法做到这一点的。

你需要做的是把你的语言模块移到Apache工作进程之外的其他进程中。

对于你的语言,可以使用以下模块来实现:

撰写回答