我正在研究一个解决scheme,我们将使用Windows 2008 w / Hyper-V在单台服务器上设置40个虚拟Web服务器。
不幸的是,我们只有3个免费的公共IP地址可供使用,所以我需要一个基本的单一的公共IP,将请求发送到相应的服务器。
我想在主机上运行的web服务器运行时会说“ web.company.com ”,那么每个虚拟服务器可能是一个子域,如“ client1.web.company.com ”。 然后,前端Web服务器会将请求代理到client1的虚拟Web服务器。
这是一个合理的方式来configuration系统? 如果是这样,IIS可以用来做代理,或者另一个开放源码的Web服务器更好地工作(Apache,LightTLD等)?
这听起来很奇怪。 40个虚拟机40个站点?
IIS可以在每台机器上托pipe多个网站。 你能不能有3台服务器,并使用IIS主机头来承载15个站点? 或者每个Web应用程序实例都必须是专用的?
无论你想在40个盒子里共享一个IP,你都需要做一些反向代理。 您将需要设置反向代理中的每个主机名,以便知道发送该主机头的哪个框…
如果你被迫去访问这些网站,你会遇到很大的成本问题。 除非您正在运行Windows Server 2008数据中心,否则您必须为每个vm安装授权os。 2008年企业包括4名客人。
更不用说让40台机器运行而不是一台(使用主机)。
请参阅 – http://www.microsoft.com/hyper-v-server/en/us/default.aspx
最好的办法是使用一个负载平衡器(或两个,在集群configuration中)充当“集中器”。
这与您提到的解决scheme没有太大差别,但具有允许外部访问背后资源的高可用性的好处。
听起来像一个糟糕的计划。
如果您正在为网站设置Hyper-V虚拟机,那么本身就会花费大量的资金。 这就是为什么你看到Hyper-V的VPS包在每月$ 50- $ 100的范围内。 那么为什么不每个IP每月额外增加1美元呢? 只要把这些成本转嫁给客户就行了。 否则,如果你的机器可以运行40个虚拟机,那么可能花费(或者花费)很多钱,所以IP应该是一团糟。
把这里build议的其他解决scheme作为软件成本/设置头痛/正在进行的皮塔(你将如何实现RDP?)来设置反向代理或负载平衡,或者不值得。
我想出了一个解决scheme。 我安装了IIS7的URL Rewrite扩展,并使用重写规则将来自特定子域的stream量路由到正确的内部主机。
为什么不在IIS中使用HTTP HOST头? 基本上,每个网站都可以准确地告诉哪个域名听和回答。 我只有一台IIS7服务器,它只在一个外部IP上托pipe3个网站,只是因为HTTP标头被分配了…