从现在开始,我使用 apache2 的 vhost 功能将多个域绑定到一个公共静态 IP。
现在我正在设置一个具有 4 个 IP 和多个虚拟机的 XEN 主机,其中两个是纯 Web 服务器。这两台虚拟机可以共享一个公共 IP 吗?每台虚拟机在同一个公共 IP 上都有一组虚拟主机。
编辑:好的,基于主机的重定向怎么样?
答案1
如果你只关心提供 http 服务,你很可能想要安装一个软件负载均衡器/反向代理,例如磅. Xen 主机上的配置(再次——最有可能)看起来像
ListenHTTP
Address xx.xx.xx.xx
Port 80
Service
BackEnd
Address ip.of.webserver.1
Port 80
End
BackEnd
Address ip.of.webserver.2
Port 80
End
End
End
您还需要在 Xen 主机上设置转发和 iptables 规则;它可能已经设置好了。
答案2
如果两个服务器的 IP 相同,我认为您无法拆分发送到这两个服务器的请求?
为什么需要设置成同一个IP呢?
不过图表不错
答案3
正如 radius 和其他人所说,我不相信可以仅通过为服务器提供相同的 IP(他们会抱怨重复的地址,其中一个最终将没有 IP)或相同的辅助 IP(如上所述,但更难排除故障)来做到这一点。
更好的选择是循环 DNS,您可以将每个 Web 服务器的 IP 添加到相同的“A”记录,并且对该“A”记录的查询每次都会返回不同的地址,或者返回一个地址列表供您的客户端选择。另一个选择是在两个 Web 服务器前面添加某种负载平衡应用程序,以将流量平等地路由到每个服务器(或只路由到其中一个,另一个作为故障转移)您可以使用安装了 mod_proxy 的另一个 Apache 实例来执行此操作。
您想使用其中哪一个取决于您为什么要这样做 - 我们是在谈论某种高可用性/集群的东西吗?
答案4
根据您的编辑,您可以使用反向代理。Apache 可以做到这一点。Pound 是另一个已经提到的解决方案。