我有4个Web服务器(Windows Server 2008 R2)和一个公共IP地址。
他们都需要成为networking农场的一部分(因此,网站的请求分布在所有服务器上)。
两个问题:
1)这是可能的,如何,或者我必须有4个公共IP地址?
2)我可以在另外一台主机头上托pipe另一个站点,但只使用一个公共IP地址?
另一组词(和一个更多的企业答复恕我直言):负载平衡器….
市场上有各种各样的自由和开放源代码以及封闭源代码。 请参阅HA代理/ jetNEXUS。 你也可以使用Apache的mod-proxy-lb来做到这一点。
我反对NLB的观点是,依靠交换结构来传播负载是一件肮脏的事情。 虽然它与Windows服务器免费捆绑在一起。 Apache也不需要花钱,可以添加更多的function和性能。
1个词:聚类。
看看微软的“networking负载平衡”服务。
你的两个最好的select,对你select的操作系统最“原生”的选项是:
NLB工作在IP层,ARR工作在HTTP层。 如果你阅读上面链接的文档,发现不容易遵循,那么也许你应该咨询一个曾经从事这些工作的人。 负载均衡安装本身并不是很复杂,但是有大量的小事情可能会出错,并且与直觉相反。
2)我可以在另外一台主机头上托pipe另一个站点,但只使用一个公共IP地址?
不,也许你可以通过将传入的HTTP请求广播到所有4个服务器,然后configuration一个服务器来响应frankenstein。 但是,这是一团糟,这是如何做到这一点,违背了所有的惯例。 获取多个IP地址并为每个网站指定一个IP地址,或者让所有4个服务器响应并使用基于HTTP 1.1名称的虚拟主机 。
回答你的问题:
1)使用免费的负载平衡器。 我相信Citrix Netscaler现在甚至有一个免费的虚拟机设备(有限制 – 但也许它会为你工作)
2)是的,你可以在同一个IP地址上使用主机头和主机。
对于#1,如果你真的想 – 你可以使用DNS循环 – 穷人的负载平衡。 简单但容易。 尽pipe如此,你不会承担同样的负担。 我会设置您的TTL(生存时间)为5分钟,任何较低的DNS DNScaching都不会因为stream量的原因而被尊重。 这样,如果服务器坏了,你可以从DNS中删除IP,并且应该在5分钟后停止去那个服务器。 减less停电的时间。
我讨厌NLB等 – 如果一个真正的LB(F5或Netscaler)是不负担得起的 – 尝试所build议的免费的,或尝试DNS,如果你需要立即启动和运行,尽快你在工作平衡器。 也许有一个VM设备在那里。