我买了一个Slicehost VPS(最便宜,256MB,运行Ubuntu),因为我有兴趣在课堂之外扩展我的Web开发经验/理解.我希望Slicehost运行(1)一个博客,(2)我可以用于私人组织目的的wiki(我和一些朋友),以及(3)多种语言的开发(
Ruby,PHP,python) ).我所意识到的是,这有许多缺点.首先,我将为每个访问者启动一个巨大而丑陋的Apache进程(不是我期望的那个),其次,这将使配置变成一场噩梦.
有没有办法可以运行单独的Apache进程来处理每个程序,但是以URL透明的方式这样做?我希望能够让blog.mywebsite.com只加载Movable Type的相关模块和配置,同时让pydev.mywebsite.com只加载运行python的Apache的modules / config和railsdev.mywebsite. com运行Apache / Passenger或其他什么.如果我愿意将URL设置为mywebsite.com:8081/,mywebsite.com:8082/等,我知道如何做到这一点,但有没有办法让一台服务器收听* .mywebsite.com: 80并让它将请求传递给适当的服务器(正在侦听端口8081-8084左右)?
解决方法
你想要的是一个
reverse proxy配置.是的,这是可行的.本质上,反向代理假装是客户端的Web服务器.然后,根据请求的域名,它可以代理到指定的后端Web服务器的连接.
因此,您可以让不同的Web服务器侦听127.0.0.1上的不同端口,并让您的反向代理重定向到它们.
流行的轻量级反向代理是varnish和pound.但是,即使是apache也可以通过mod_proxy配置为代理.与lighttpd和Nginx同上.