Nginx代理下载超过1GB的文件失败问题的解决

场景

项目中通过nginx代理请求后端的下载接口,超过1g的文件下载后文件损坏,并且大小只有1g

问题分析

Nginx Buffer 机制默认开启时根据 proxy_buffer_size 和 proxy_buffers 参数控制写入内存的大小,如果超过buffer的限制,就会通过 proxy_max_temp_file_size 参数响应其余部分写入到磁盘临时文件 。
由于proxy_max_temp_file_size 默认为 1G,因此临时文件被写满时,nginx就会通过滑动窗口zero0通知服务器停止发送数据。

问题解决

根据业务调整临时文件大小

proxy_max_temp_file_size 2048m


版权声明:本文为qq_29864051原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。