Nginx反向代理下载大文件失败解决办法

在个人网盘下载镜像文件的时候,发现下载到1G的时候就提示“下载失败”,到网上找了一圈发现可能是反向代理缓存的问题。

在请求文件的时候,反向代理服务器会飞速向上游服务器请求数据,并存在缓存里。但是这个缓存往往只有1G,缓存被填满而等待用户下载1G后,反向代理服务器试图再次向上游服务器请求数据,结果上游服务器早就因为连接超时而关闭了连接,导致反向代理失败,用户除非重新请求断点续传,否则无法继续下载文件。

解决这一问题的方法是:

参考:http://luna2ooo.blog.chinaunix.net/uid-20332519-id-5755724.html

简单地来说就是禁用缓存、并增加反向代理服务器与上游服务器的连接超时时长。

在反向代理服务器配置(nginx)添加:

proxy_buffering off;

在上游服务器配置(nginx)添加:

client_body_timeout 3600;
client_header_timeout 1800;
keepalive_timeout 15;
send_timeout 3600;

重新加载服务器,发现问题解决了。

发表评论