2011-09-13 163 views
10

简单的问题Nginx的提供静态大文件

http://mysite.com/bigFile.avi#此文件是800MB

当我使用这个链接,并从我的浏览器下载bigFile.avi, 我的Nginx服务器的过程中跳转到100%的CPU负载下载会话,静态内容,没有PHP。 (正常的PHP脚本使用1-3%的CPU)

我不知道这对我的服务器是否正常吗? 它消耗太多的CPU来处理大文件?

(我甚至关闭在nginx的配置gzip的,但没有太大的区别)

回答

9

这些文章

我会承认一些超出了我。但总之,他们建议禁用sendfile,启用aio,并在发送大型(> 4MB)文件时增加输出缓冲区。我拿走的是,大多数默认的服务器配置假设将发送许多小文件,而不是少数或很多大文件。这两种不同的情况可能需要一些非常不同的配置才能有效地工作。

10

由于nginx的可以将它们发送到客户端之前写入磁盘中的大文件,它往往是一个好主意,禁用此缓存,如果该网站是要服务于大型静态文件的东西,如:

location/{ 
    proxy_max_temp_file_size 0; 
}