Amaze UI Logo

码动指尖



nginx反向代理下载文件失败处理

最近遇到了从服务器下载文件失败时的情况。

修改代码,百思不得其解。

于是搬出终极武器,fiddler,抓包跟踪。


最终发现  server didn't return a complete response...return 8192 byte。。。等信息


突然就反应过来,文件下载的时候,没有下载完毕,服务器就给拒绝了。

难怪本地可以成功下载。


究其原因,就是服务器无法返回超过一定大小的文件数据了。因为是nginx反向代理,所以直接定位到反向代理的配置文件。


找到

location / {

    ...

    # 添加如下语句

    proxy_buffer_size 512k;

    proxy_buffers 4 512k;

    proxy_busy_buffers_size 512k;

    proxy_temp_file_write_size 512k;

}


保存退出


sudo nginx -s reload


再次尝试下载。成功。


如果你的文件还会更大,那么根据需求调整大小,如果文件很大,同时不知道具体有多大

还可以直接

proxy_buffering off;

禁用服务器缓存


同时你还可以设置更长的超时时间

proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)

proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)


本文希望能对你有用。

 nginx

作者  :  奕弈

喵喵喵,你在心上



评论


About ME

about me

奕弈

为了最初的心,努力奋斗,从不懈怠的学习。

我不想成为一个庸俗的人。十年百年后,当我们死去,质疑我们的人同样死去,后人看到的是裹足不前、原地打转的你,还是一直奔跑、走到远方的我?

Contact ME