在另一台服务器上调用readfile()时占用带宽?

时间:2011-05-17 00:27:06

标签: php bandwidth readfile

我对服务器如何相互通信以及如何占用带宽有疑问。我将用一个例子来更好地解释我的问题。

我有两个网站:www.jojoedad​​.com和resources.jojoedad​​.com。每个站点驻留在单独的服务器上(具有不同的IP并位于不同的计算机上)。 “www |主要用于处理前端任务,例如提供不同的网页。”资源“存储了大量视频文件,仅用于提供大型视频文件。

假设我正确编码,因此只有“www”可以被公众访问,“资源”只能通过调用“www”上的脚本来访问。如果用户通过www.jojoedad​​.com检索“资源”上的视频,将会占用“www”的大带宽,如下所示:

http://www.jojoedad.com/getVideo.php?filename=myVideo.mp4

在getVideo.php中,我有类似的东西:

header("Content-Type..."); // I didn't fill in details for this line
header("Content-disposition..."); // I didn't fill in details for this line
header("COntent-description..."); // I didn't fill in details for this line
readfile("http://resources.jojoedad.com/video_files/{$_GET['filename']}");

提前致谢!

3 个答案:

答案 0 :(得分:2)

是的,因为现在这个过程就是这样做的:

  1. www连接资源
  2. www从资源下载视频
  3. www将视频流发送给用户
  4. 意味着你的工作量增加了一倍。发布视频文件的脚本应位于resources.joedad.com上,并使用标题调用以及readfile使用视频文件的路径。一个例子是:

    readfile('/home/user/videos/myVideo.mp4)
    

    所以它不必与自己建立联系。

答案 1 :(得分:2)

有趣的是,这将使用两次 www上的带宽 - 一次从resources检索文件,一次将数据发送到客户端 - 并且一旦在resources。许多数据中心对内部数据流量收费较少(或没有收费),因此可能不是什么大问题。

如果您希望限制resources来自www且仅来自www的访问权限,那么获取文件的三倍带宽成本甚至可能是值得的 resourceswww,然后再从www发送至客户。

答案 2 :(得分:1)

是的,它将使用视频所需的带宽一次在资源上,再次在www