如何在多个服务器上托管一个网站?


10

我打算发布一个iOS应用程序,该程序可以从服务器下载视频。如果发布当天有数百人尝试这样做,那么我的网站和服务器提供的服务将明显关闭。您如何在多个服务器上托管网站?当有人尝试访问我的网站时,他们的请求如何传递到可用服务器?苹果和谷歌如何做到这一点?谢谢你的帮助。



检查我的答案,这是一个非常受欢迎的用于扩展和监视服务器的程序
Anagio

Answers:


5

对于大型企业(例如Google,Apple等)来说,它们具有复杂且昂贵的硬件,可以路由流量。

一个更简单的解决方案是设置多个主机,并由一个主机轮流处理请求。

假设我们有5台用于托管视频的服务器,名为VideoHostN,并且有一个与跟踪它们使用的服务器分开的服务器,名称为RoutingHost。

第一个iOS客户端请求该地址以从RoutingHost获取视频。RoutingHost返回VideoHost1上的地址。

第二个iOS客户端请求。RoutingHost用VideoHost2答复。

直到达到我们假设的最大值VideoHost5,然后重置为VideoHost1。

只需要一些简单的服务器端代码即可跟踪接下来要使用哪个VideoHost并将地址返回给它。

这是一种将用户分散出去的廉价而简便的方法。这不能保证您不会阻塞任何给定VideoHost的用户。随机连接的几个用户最终都可能从同一位置拉出,这是一个随机的机会,但这只是一个开始。


1
谢谢你的帮助!我正在使用一项名为“区域编辑”的服务。今天,我与他们一起为整个站点设置了DNS,它们提供了循环DNS(我相信这就是所谓的DNS)以及“故障转移服务”。这将监视DNS指向的服务器并将请求发送到可用服务器,并拉出与请求打包在一起的服务器。每年大约12美元,因此我会坚持使用它们,而不是弄清所有这些。但是非常感谢您的帮助!
杰克·汉弗莱斯

是的,每年$ 12美元是一个更好的解决方案。您可以将URL拖放到该服务以供将来参考吗?
克里斯,


7

你可以做负载均衡按@ PeeHaa的链接到维基百科的文章,信息在这里。这需要一些专业知识,金钱和时间来设置。像Google和Apple这样的大公司使用他们自己编写的技术,并且试图模仿它们是一种昂贵且过大的解决方案。如果您要进行负载平衡,则需要使用比其实际使用量小的得多的负载。

或者,您可以使用云服务器托管视频或其他内容。它们被称为内容分发网络(CDNS),它们现在所要做的不只是简单的文件托管。这些网站的好处是它们使用Google创建的技术来创建负载平衡,并且根据您在服务器上消耗的数据量或周期确切地向您出售服务。这意味着您的成本将以与使用率相同的速度增长,因此,只要您拥有良好的收入模型,您就始终有资金来支付服务费用。一些面向小型用户的优秀公司是:

它们比这三个要多得多。另外,CDN的另一个好处是,您的内容不在一个服务器上,而是在全球网络上。CDN这样做是为了使内容始终来自最靠近用户的服务器。在一个位置设置两台以上的服务器将永远不会给您带来CDN可以提供的相同的交付速度优势。

作为记录,我没有为任何一家公司工作。我已经在公司网站上使用Amazon的Web服务进行视频托管,这是一个巨大的好处。


1

我将在ec2上使用Scalr来自动监视服务器,它是开源的,并且与AWS服务一起很好地工作。因此,如果您的应用服务器开始受到太多流量的打击,Scalr将自动启动更多服务器并为您平衡负载。如果出现故障,从属服务器也将作为主服务器,它将自动备份数据库。因此,您的应用程序服务器和数据库服务器都可以根据需要进行监视和扩展。

扩展网站既困难又昂贵。利用云计算的强大功能,Scalr可以自动扩展您的网站基础架构:它可以扩展数据库,扩展应用程序服务器,甚至可以添加和配置负载平衡和缓存服务器!

http://code.google.com/p/scalr/


1

一个免费的负载平衡器软件(例如ZenLoader)可以解决问题。这是一个开源软件,只有在需要支持时才需要付费。

我听说如果您已经购买了服务器,它将满足您的要求。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.