向Nginx服务器发送大文件传输失败502 failed (32: Broken pipe)

报错如下:

*901 sendfile() failed (32: Broken pipe) while sending request to upstream,

12M的都可以发送,2G的不行,发几分钟就会断
 

django ,rest framework,gunicore,nginx

nginx也配置了相关参数如下:
 

sendfile on;
send_timeout 60m;
keepalive_timeout 65s;
client_max_body_size 5120m;
client_body_timeout 3600s;

奇怪的是我们也没有配置upstream模块呀,到底是什么问题呢?

来不及做分片上传了,此方案暂不考虑。

你是将文件上传到nginx服务器是吗?

也就是吧nginx用作为文件服务器是吗?

首先设置client_max_body_size这个是nginx配置的上传文件的最大值设置。

其次是你上传文件的框架,或者你的程序是否支持大文件上传,nginx代理到哪个位置,如果是web端,也需要支持2G以上的文件上传才行,

在B/S架构里不建议上传或者下载过大文件,时间长等待时间浪费资源。

建议上传下载使用文件流的方式进行传输,

检测设备是否IO操作过大导致502错误,内存溢出等不具备文件操作的情况!