我有挑战的主机大约200-1000的MP3文件,都在100MB +的大小范围内。
此外,还有一些较小的RSS文件,以及一些较小的JPG文件。
所有这些都是静态内容,没有PHP或任何types的脚本。 也不会有HTML托pipe,没有什么必须是HTTPS,没有用户数据存储在服务器上。
这些文件是非版权的播客,这是由我们自由生产,随时随地都可以通过RSS发现到任何地方。
直到最近,这些文件位于godaddy的一个便宜的托pipe计划,但由于巨大的stream量,我们别无select,只能在其他地方托pipe这些文件。
在过去我只使用Apache来满足我所有的托pipe需求,但是我怀疑apache对于这些要求并不是理想的解决scheme,而且由于服务器有点慢,而且没有那么多的RAM,我想知道如果不同的服务器会更好的这些要求。
你会推荐哪个服务器? 我希望能有一些东西能够理解一个文件的需求量很大,例如,当一个新的情节出现,并将其放入RAMcaching中。 NGINX能以那种方式使用吗? 我应该使用Lighthttpd吗?
在这种情况下,我不希望Apache / Nginx / Lighttpd之间有太大的区别。 如果你修剪掉所有你不需要的模块(这很可能是大部分模块),我希望Apache能稍微增加一些内存。 我个人的select是Lighttpd,因为我更熟悉静态文件,尽pipe负载相对较高,但从来没有任何问题。
至于RAMcaching问题…操作系统应该自动假设你有足够的RAM可用。 您可以通过计算获得N个不同文件所花费的时间与获取相同文件N次所需的时间进行testing,尽pipe可能没有太大差别。 看到你的文件是相对较大的,我绝对不会吝啬你的服务器的内存,如果你有一个select。 在你的情况下,你可能会受到networking带宽的限制。
正如许多这类问题一样,最好的答案是testing , testing和testing 。 在同一台服务器上(不同端口下)完成这三个设置是很容易的,然后使用ApacheBench(ab,Apache自带的)或类似的工具做一些基本的基准testing。 检查您的服务器的负载/内存使用情况,比较可用的请求率,并查看哪一个最适合您的情况。
这个问题反映了不成熟的优化。
我希望能有一些东西能够理解一个文件的需求量很大,例如,当一个新的情节出现,并将其放入RAMcaching中。 NGINX能以那种方式使用吗?
这是你甚至不需要担心的事情 – 它将被操作系统caching,并在第一次被请求时被放入RAM中。 它会留在RAM,因为大家都会问。
设置一些简单和容易的(apache / nginx),让我们呃撕裂。
如果您需要帮助提供数据(尤其是服务器没有足够的内存用于caching),请将CDN(即Cloudflare)放在前面。 实际上,由于Cloudflare有一个免费的层级 ,所以把它放在前面!
大致你有的select是:
第一个通常不是很经济,许多通用托pipe计划只适用于许多小型,相对较低stream量的站点,而大型站点不适用于该业务模式,所以通常定价被devise为在您达到一定限制时驱动您离开。
第二个不一定是最便宜的,但是如果你有时间投入时间来获得所需的技能并testing你提出的(软件)configuration,那么这个灵活性允许你很大的灵活性。 通常最快的数据来自内存,然后SSD,SAS和SATA磁盘落后,但也是最便宜的存储。 caching内存中最受欢迎/当前文件的东西应该是最快的(例如Varnish),尽pipeLinux通常使用任何未使用的内存作为磁盘caching,而任何轻量级的Web服务器都应该足够用于静态内容。
即使你不使用像cloudflare这样的免费CDN,CDN可能会比选项1和2便宜得多。