Nginx服务静态大文件

sam*_*end 12 performance config file nginx

简单的问题

http://mysite.com/bigFile.avi #this文件是800Mb

当我使用此链接并从我的浏览器下载bigFile.avi时,My Nginx服务器在下载会话期间跳转到100%CPU负载,静态内容,没有php.(普通的PHP脚本使用1-3%的CPU)

我想知道这对我的服务器来说是否正常?它消耗了如此多的CPU来提供大文件?

(我甚至关闭了nginx配置中的gzip,但差别不大)

mer*_*cin 12

由于nginx可以在将大文件发送到客户端之前在磁盘中写入大文件,因此如果站点要提供大型静态文件,通常最好禁用此缓存,例如:

location / {
    proxy_max_temp_file_size 0;
}
Run Code Online (Sandbox Code Playgroud)


bio*_*net 9

看看这些文章

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