![同一个域名可以有多台服务器吗?](https://linux22.com/image/557012/%E5%90%8C%E4%B8%80%E4%B8%AA%E5%9F%9F%E5%90%8D%E5%8F%AF%E4%BB%A5%E6%9C%89%E5%A4%9A%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%97%EF%BC%9F.png)
在我当前的一个项目中,我网站的一部分预计会吸引大量访问者。这基本上是一个在线游戏,有大量玩家同时玩。所以我想把它放在一个单独的服务器上。但是,我想为游戏使用相同的域名。是否可以将同一个域名与两个不同的服务器关联?
另一方面,还有其他方法可以解决上述问题吗?
答案1
您需要考虑‘多台服务器’在哪个级别处理域。
假设 >1 名称服务器正在处理 DNS 解析,因此我们将跳过该步骤。
对于给定的 A/AAAA 记录,您可以拥有多个 IP 地址。这是最简单的负载平衡形式。运行:“host www.google.com”以查看示例。
每个 IP 地址可由互联网上的多个位置处理。这称为任播,也是多个根 DNS 服务器为实现负载平衡 + 冗余所做的工作。
在实际的 IP 端点,负载均衡器可以接受请求并将其分发到多个后端服务器,由这些服务器负责处理请求的实际工作。
超大型站点将会同时使用部分或全部这些技术。
就您而言,您需要让实际的游戏在域中单独的(或多个单独的)主机名上运行。在这种情况下,登录等的某种前端会将浏览器引导到适合该用户的服务器。
答案2
是的,有几种方法可以做到这一点。您必须为每台机器设置一个唯一的机器名称(看起来像子域),但您可以使用负载平衡来获得与根域关联的虚拟 IP。
也就是说,如果您不能或不想支付负载均衡器的费用,您可以在应用程序逻辑中做类似的事情,其中您有一个前端服务器(您的根域),当玩家登录时将他们分配给游戏服务器(因此,用户登录yourdomain.com游戏,但是当他们开始玩时,您的应用程序会将他们重定向到server1.yourdomain.com)。
根据您正在开发的内容,您还可以考虑查看诸如 Heroku 或 AppHarbor 之类的云托管服务,它们可以为您处理一些扩展。
答案3
如果你正在使用 Apache,这是一个非常好的指南http://wiki.magnolia-cms.com/display/WIKI/Guide+-+如何配置apache+load+balancer