惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
博客园_首页
美团技术团队
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
J
Java Code Geeks
T
Tailwind CSS Blog
Jina AI
Jina AI
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
爱范儿
爱范儿
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
小众软件
小众软件
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

Yee's Blog

腾讯云/轻量云 安装ArchLinux的个人记录 记录我的联想M720Q Arch Sway窗口管理器的安装和配置过程 Jenkins Linux安装 腾讯课堂、钉钉在线网课视频直播回放下载离线播放 Ceph块设备对RBD块设备操作LVM创建PV时报错 Ceph映射RBD块设备 2020年9月26日前端部门Vue考核 2020年9月26日后端部门Python考核 Windows Server 2019 Datacenter M720q 安装记录 Ceph块设备基础及快照、克隆操作 从Ceph集群中删除OSD节点 Centos8配置 chrony NTP服务端及客户端 搭建Ceph集群 Ceph硬件准备 OSD与Pool池的常见操作及管理 Ceph用户管理 MacOS睡眠管理——让你的Mac睡的更香 初中古诗文必背篇目 Ansible 技巧之场 Ansible 包含和导入文件 Ansible 学习文档 Ansible 主机模式 Ansible 角色 Ansible 调整连接数 Splunk数据搜索和报表 Ansible 常用模块 Ansible 变量和事实 Ansible 任务控制 Ansible Playbook Ansible 基础概念
Nginx反向代理下载传输超过1G大文件时断开问题
本文作者: YeeFire · 2020-09-25 · via Yee's Blog

问题描述

42Team社团上线下载站,使用Nginx反向代理为用户提供服务。问题的现象是当用户下载文件超过1G大小时出现断开下载连接的情况导致下载失败。

问题分析

一开始以为是Flask的流传输出了问题,调试并跟踪代码后并没有发现问题,而且直接在本地代码调试下载大文件不会出现断开情况。那么开发环境与生产环境中只相差了中间有一层Nginx反向代理,那么初步问题定位到Nginx的反向代理配置上。

经过在网上进行搜索“反向代理下载大文件失败断开连接”等关键字后找到了一篇其他人写的博文,遇到过类似的问题。

发现可能是因为超时的原因导致,因为反向代理服务器和部署下载站服务的服务器之间的网络传输速度和磁盘性能非常好,所以他们之间传递1G以上的大文件仅仅有几秒的时间,而Nginx反向代理服务器将文件传输到用户端可能需要数分钟或数十分钟,由于这之间的时间差非常大,所以超过了Nginx的默认连接超时时间,导致此问题发生

问题解决

禁用缓存

禁用缓存,客户端的每次清求都转发到被代理服务器,做法是在代理服务器的Nginx配置里面添加:

proxy_pass http://172.17.8.88:5050/;
proxy_redirect default;
proxy_buffering off;

加大Nginx服务器与另一服务器之间的超时等待时间

keepalive_timeout 15;
send_timeout 3600;

Nginx反向代理导致大文件下载失败