2015-06-02 81 views
0

我正在使用nodejs + express服务器部署网站。在该网站上,我将拥有数百个我希望我的用户加载和查看的视频(mp4)。Node + Express与Apache的视频传输性能

现在,我通过将视频放入节点的公共目录来传递视频,因此数据通过节点传递并快速传输。我想知道这种做法是否正确,或者我应该建立一个单独的apache web服务器来传送视频。性能如何比较?还有什么应该考虑,如缓存?

我试图找到有关的数据,但没有成功。我发现有些人确实使用节点流式传输视频(例如here),但我还没有找到性能比较。我相信不会有太大的差别,因为服务器只需读取然后输出文件内容,并且I/O操作应该以类似的速度发生。我忘记了什么吗?

非常感谢!

回答

1

这听起来像一个相当大的视频服务。如果您在许多不同位置有很多用户查看您的视频,并且您担心用户体验,那么您可能需要使用某种CDN服务。

如果您不熟悉,可以在“边缘”附近有效地缓存您的内容的副本,以便远离服务器的位置的用户不会被延迟。他们倾向于动态调整以迎合越来越不受欢迎的视频。

您仍然需要一个原始服务器,这是您在上面描述的原始服务器 - 但现在一旦某个特定区域的用户访问了该视频,它应该被缓存在该区域,以便下一个访问者不需要加载你的服务器。

有很多可用的CDN网络,甚至有一些特定的Node.js模块,以帮助使用它们(虽然你可以做你自己) - 如:

+0

谢谢,这是一个好的想法,我还没有想过使用CDN。至少在这项服务的第一年,用户都位于同一个城市,所以我认为我现在还不太需要它(但是当我们展开时,会记住这一点)。 除此之外,如果我使用apache或节点,它有关系吗? –

+1

我不知道你会找到一个绝对的答案节点与Apache的流问题,你可能会进入很多党派辩论,但有一些讨论表明,节点不理想服务大型静态文件:http://stackoverflow.com/q/6634299/334402(请参阅顶部的答案,但也阅读其他人的一些其他意见/投入)。即使您的用户在您的服务规模范围内,我认为CDN仍然可以走。 – Mick

+0

非常有帮助,非常感谢! –