我试图build立一个虚拟机主机(当前运行的ubuntu + KVM),它将为不同的应用程序托pipe许多虚拟机。 例如,我们有一个虚拟机运行在一个虚拟机上,另一个虚拟机运行在另一个虚拟机上。
主办 / \ VM1 VM2
在内部,虚拟机在自己的虚拟networking上有自己的IP,但是从外部来看,只有一个IP地址是主机的IP地址。
在我们的networking上build立了一个指向主机IP的域,我可以设置一个iprule来将发往主机的stream量直接转发给其中一个虚拟机。 但是,为了使这两个虚拟机访问外部世界,不知何故,我需要转发基于URL的请求。
理想情况下,我想通过子域转发请求
http://vm1.host/ - > host - > VM1 http://vm2.host/ - > host - > VM2
但也可以通过URLpath:
http:// host / vm1 - > host - > VM1 http:// host / vm2 - > host - > VM2
我已经在主机上安装了Apache 。 我需要什么types的转发/redirect/别名/反向代理规则才能使这种networking设置正常工作? 有什么额外的需要处理子域名?
你是否从主机本身提供任何网页? 如果不是,所有的Web数据都在VM1和VM2上,那么主机上的Apache可能不是最好的解决scheme。 很可能你应该在主机上使用诸如haproxy或squid之类的东西来将请求转发到运行在VM1和2上的Apache
我有一些类似的环境,我需要从一个主机转发到另一个东西,所以我使用Apache的mod_proxy http://httpd.apache.org/docs/2.2/mod/mod_proxy.html我希望有所帮助,你也可以利用虚拟主机http://httpd.apache.org/docs/2.2/vhosts/
我认为在主机上使用Apache很好。 这和这个serverfault post基本一样,你需要某种反向代理。