基于主机名的反向代理redirect

这是我的设置:

Windows Server(2003)接收* .mydomain.com的所有stream量,该stream量(到目前为止)将所有传入的端口80stream量redirect到Linux VM(使用VMWare虚拟networkingpipe理器)。

我现在需要在这台服务器上安装另一个网站,使用IIS6来处理subdomain1.mydomain.com。

如何分离HTTPstream量,如下所示:

subdomain1.mydomain.com -> IIS everything else (*.mydomain.com, domain.com, raw IP) -> Linux VM 

我想在Windows上设置一个Apache服务器作为反向代理。 但是ProxyPass处理主机名吗? (所有例子我看到处理目录)。

有另一个/更容易的解决scheme? lighttpd帮忙吗?

TIA为您提供帮助。

[FWIW:改变架构不是一种select。 否则我不会问;-)。 一个可以接受的select,如果它有帮助(我怀疑)是build立第二个公共IP)]

您可以在Apache中设置VirtualHosts,然后使用ProxyPass for subdomain1.mydomain.com将代理逆向转换为IIS,并使用默认的VirtualHost将代理逆向到Linux VM中。

你会想要一个这样的configuration:

 <Virtualhost *:80> ServerName subdomain1.mydomain.com .... # Reverse proxy into IIS ProxyRequests off ProxyPass / http://ip.of.IIS.machine/ ProxyPassReverse / http://ip.of.IIS.machine/ </VirtualHost> <VirtualHost _default_:80> .... ProxyRequests off ProxyPass / http://ip.of.linux.machine/ ProxyPassReverse / http://ip.of.linux.machine/ </VirtualHost> 

这些configuration缺less大部分configuration,但重要的是第一个VirtualHost定义在subdomain1.mydomain.com上匹配,然后在IIS机器中执行反向代理。 第二个定义匹配其他所有内容,并将代理反向到linux机器中。

请注意,我没有testing上述,因为它是写,但我肯定有一个Apache的安装与多个虚拟主机,其中一个vritualhost是一个反向代理到另一台机器,所以基本理论是好的。