Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File Nginx服务于静态大文件_File_Nginx_Config_Performance - Fatal编程技术网

File Nginx服务于静态大文件

File Nginx服务于静态大文件,file,nginx,config,performance,File,Nginx,Config,Performance,我有一个bigFile.avi,它的大小是800MB,位于 当我使用此链接从浏览器下载bigFile.avi时,我的nginx服务器在下载会话期间会跳转到100%的CPU负载,没有静态内容,也没有PHP(正常的PHP脚本使用1-3%的CPU) 这对服务器正常吗?为大文件服务会消耗这么多CPU吗 我甚至尝试过在nginx配置中关闭gzip,但差别不大。看看这些文章 (搜索“发送文件关闭”部分) 我承认有些事情我做不到。但简言之,他们建议禁用sendfile,启用aio,并在发送大(>4MB)

我有一个
bigFile.avi
,它的大小是800MB,位于

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

这对服务器正常吗?为大文件服务会消耗这么多CPU吗


我甚至尝试过在nginx配置中关闭gzip,但差别不大。

看看这些文章

  • (搜索“发送文件关闭”部分)

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

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

location / {
    proxy_max_temp_file_size 0;
}

当试图下载一个大文件(>2GB)时,进度总是在50%左右停止。这就解决了!