扩展大文件下载?

4 nginx cache squid varnish apache-2.2

我们目前通过单个 Apache 服务器提供大型 (1GB+) 文件,但我们的 Apache 服务器非常受磁盘 IO 限制,我们需要扩展。

我的第一个想法是简单地复制这个 Apache 服务器,但是我们的文件库太大了,不能简单地将 Apache 服务器水平扩展 N 倍。

所以我的下一个想法是在后端有两个 Apache(高可用),每个都有我们整个库的单独副本......然后在前面有“N”个反向代理,其中“N”随着我们的交付需求的增长而增长。每个反向代理都占用大量 RAM,并且每 GB 具有尽可能多的心轴。后端 Apache 服务器更“存档”,并且主轴与 GB 之间的比率较低。

这是一个好的架构吗?有没有更好的处理方法?

And*_*ndy 6

这不是一个糟糕的架构(squid是一种流行的反向代理),但是如果您期望指数增长,内容交付网络可能是一个更好的解决方案 - 您只需为您需要的内容付费,带宽会立即扩展(您不必向外扩展更多服务器)并且流传输被地理定位到尽可能靠近客户端的服务器,确保它们获得最大的传输速度。但是,我从未尝试过使用 1GB 的文件进行此操作,而且成本可能过高。

在这种情况下,Torrent 技术可以被视为 p2p CDN,因此其中一些提供商可能适合作为您内容的 Torrent 种子,从而降低您的总带宽成本并(可能)提高速度,尽管这取决于您的 leechers。