在单个IP地址上运行多个公共访问的Web服务器

我有三个单独的networking服务器,在一个networking上只有一个公有IP地址的三个不同的内部IP地址。 每个Web服务器都有安全限制,所以我不能只在一台Web服务器上运行我的所有网站。 所有正在运行的Apache。

我想设置子域名,允许我远程访问每个不同的Web服务器,全部在端口80上。例如,

site1.domain.com

site2.domain.com

site3.domain.com

如果所有这三个域都parsing为我的单个公有IP地址,但是某种types的服务会检查请求以查看请求哪个子域,并从相应的服务器中提取数据。

这种types的事情(1)是可能的,(2)容易实现? 我正在运行Ubuntu服务器9.04。

这就是所谓的反向代理,你可以将80端口上的所有stream量redirect到一个Apache服务器,configuration3个虚拟主机 (每个子域1个),在2个虚拟主机处理非本地网站时,使用Apache ProxyPass指令告诉Apache从另一个服务器。

nginx也可以充当反向代理。 您可以将所有请求转发给nginx,然后nginx将根据子域加载一个正确的服务器上的内容。

我将使用Apache proxypassfunction,从我的angular度来看,更容易设置。
你也可以启动一个只能作为反向代理的第四个Apache服务器。 在这种情况下,3个虚拟主机将使用proxypass从正确的服务器获取内容。

例如,请参阅http://www.raskas.be/blog/2006/04/21/reverse-proxy-of-virtual-hosts-with-apache-2/您的案例与您拥有的第三个案例相同子域(所以你需要1个更多的虚拟主机)。