我曾在一些有两个服务器的网站上工作:一个专门用于服务php网页,另一个专门用于服务媒体,如图像,flvs,mp3等。当你在http:// www上查看页面的源代码时.mysite.com ,你会看到类似于(img src =“http://images.mysite.com/helloworld.jpg”)的代码,其中http://images.mysite.com是与www.mysite不同的物理服务器。 COM。
比方说,我必须重新创build一个现有的网站,目前没有单独的媒体和networking服务器。 现有的网站是做YouTube的一个糟糕的尝试。 现有的网站相当受欢迎,每天2000名紫外线访问者,每月转移250 GB。 在重新创build网站时,我应该计划拥有一个单独的媒体服务器吗? 我应该计划拥有两台负载均衡的前端服务器吗? 或者这是一个“根据需要构build”的场景?
(当我将它移到ServerFault时,我刚刚提交了关于stakoverflow的答案:-))。
基本的想法是,你想有不同的服务器进行优化,做一件很好的事情。 也就是说,如果您的应用程序服务器正在运行代码/存储状态等,则需要针对此目的优化硬件 – 即具有良好的CPU和大量内存。
另一方面,你不希望你的服务器也将它的资源用于存储文件等世俗事物。 你可以有另一个(媒体)服务器,只是有一个简单的服务器提供静态文件,并有一个巨大的networkingpipe道连接到它(因为它可能。
这也使您可以更好地扩展 – 您可以将您的应用程序服务器(即计算成本较高的部分)与哑元部分(服务内容的部分)分开进行扩展。 例如,如果您拥有相同数量的用户突然开始花费更多时间在您的网站上观看更长时间的video,则可以增加媒体服务器的数量,而无需担心应用程序服务器。
所以,为了给你提供build议 – 我build议你看看你的基础设施,在你的时间表,以及你期望你的网站增长多less。 如果你认为你会增长10到100倍,那么可以考虑更长远的时间,在这种情况下,提供专注的服务将是一个好主意。 找出实现的难度,以及是否可以采取小步骤(即确保所有媒体都在一个单独的文件夹中,并且所有的链接都是编程式的 – 例如轻松地重新指派给另一台服务器等)。
在你的情况下(一个你提供用户提供的内容的youtube克隆),最有说服力的原因可能是减轻Flash的各种跨域安全策略问题。 如果您的媒体不使用单独的物理服务器,则应考虑从单独的域中提供媒体服务。 请参阅这些说明,包括如何在实践中利用这一点:
这里有一个关于Facebook和MySpace的相关故事:
我不擅长这个东西,但是几个月前我检查了一下,当时我计划了我的网站(还在开发中)。 从我记得你想要的,因为
您只能有2个连接到域。 有一个子域允许更多的连接,因为他们是“不同的”网站。 一个连接是主页面,另一个是XMLHttpRequest
专门的服务器。 你可以有一个服务器,可以容纳所有的媒体,另一个进程上传或处理涉及数据库的一切。 通过使用不同的域名,你可以让它指向一个专门的服务器,如果你想
优化。 你不需要这个,除非你有很多的命中。 如果您的网站有Cookie,每次请求页面时,浏览器都会发送Cookie。 如果你不得不在一两页中加载数千张图片,浏览器会每次发送cookie(如果它很小,这可能不重要,但有些网站会有大的cookies)。 使用另一个没有cookie的域可以加快速度。