如何在一个 IP/端口组合上运行多个网络服务器?

Zac*_*ski 4 linux apache-2.2

我买了一个 Slicehost VPS(最便宜的,256MB,运行 Ubuntu),因为我有兴趣在课堂之外扩展我的 Web 开发经验/理解。我希望让 Slicehost 运行(1)一个博客,(2)一个我可以用于私人组织目的的维基(我自己和几个朋友),以及(3)多种语言(Ruby、PHP、python)的开发)。我意识到这有很多缺点。首先,我将为每个访问者启动一个巨大而丑陋的 Apache 进程(不是我期望的),其次,这将使配置成为一场噩梦。

有没有一种方法可以运行单独的 Apache 进程来处理每个程序,但以 URL 透明的方式执行?我希望能够让 blog.mywebsite.com 只加载 Movable Type 的相关模块和配置内容,而让 pydev.mywebsite.com 只加载运行 python 的 Apache 和 railsdev.mywebsite 的模块/配置。 com 在 Apache/Passenger 或其他任何东西上运行。如果我愿意让 URL 为 mywebsite.com:8081/、mywebsite.com:8082/ 等,我知道如何执行此操作,但是有没有办法让一台服务器侦听 *.mywebsite.com: 80 并将请求传递到适当的服务器(正在侦听端口 8081-8084 左右)?

syb*_*eon 5

您想要的是反向代理配置。是的,这是可行的。本质上,反向代理伪装成客户端的网络服务器。然后,根据请求的域名,它可以代理与指定后端 Web 服务器的连接。

因此,您可以让不同的 Web 服务器侦听 127.0.0.1 上的不同端口,并将反向代理重定向到它们。

流行的轻量级反向代理是varnishpound。但是,即使 apache 也可以通过 mod_proxy 配置为代理。与 lighttpd 和 nginx 同上。