• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Nginx反向代理导致大文件下载失败

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

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了nginx配置文件详解,nginx配置文件,nginx配置文件路径,nginx静态文件配置,nginx.conf配置文件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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


一、现象:
  Nginx反向代理,被代理也是nginx,客户端在下载大文件时,下载到1G时就会显示“下载失败”,FireFox中如果继续下载,则还会再下载1G,然后再失败。
  反向代理服务器错误日志:
  1. 2016/11/25 11:23:47 [error] 67663#0: *11 upstream prematurely closed connection while reading upstream, client: ...
被代理服器错误日志:

  1. 2016/11/24 23:33:02 [error] 5833#101125: *8559 upstream timed out (60: Operation timed out) while reading response header from upstream, client: ....

二、分析:
 1、代理服务器报告:上游过早的关闭连接,好像问题出在被代理服务器;而被代理服务器则抱怨:上游服务器超时。那么一个很合理的推论是:代理服务器很长时间没向被代理服务器请求数据,被代理服务器认为代理服务器已经掉线或完成任务,于是主动断开连接,代理服务器发现需要数据,再连接时,已经连接不上了。
 2、正常的流程应该是:只要客户端一直下载,“客户机->代理服务器->被代理服务器”,这一连串的数据流不会中断,也就不会出现超时。
 3、出现超时只能有一种情况:代理服务器缓存了大文件。
 4、代理服务器接到下载请求,向被代理服务器请求数据,由于两个服务器之间网速快,所以代理服务器请求速度要远大于向客户端发送的速度,这就导致一下正常的代理方式:代理服务器要缓存数据。
 5、但是两个服务器之间的速度实在是太快了,缓存1G数据也就是分分钟的事情,而客户端需要慢慢下载,可能需要十几、甚至几十分钟。代理服务器和被代理服务器这段时间内没有什么事可干,与是两端静默的时间一长,超过了timeout的时间(一般是60s),被代理服务器就认为代理服务器掉线。

三、解决:
  有两个方案可以解决:
  1、禁用缓存,客户端的每次清求都转发到被代理服务器,做法是在代理服务器的ngnix配置里面添加:proxy_redirect default ;

  1. proxy_pass http://192.168.0.1;
  2. proxy_redirect default ;
  3. proxy_buffering off;

  2、加大两个服务器之间的timeout,在被代理服务器的配置里添加:

  1. client_body_timeout 3600;
  2. client_header_timeout 1800;
  3. keepalive_timeout 15;
  4. send_timeout 3600;
这几个实际上是有很大差别的,如果区分不清,还是全部设置上吧。





--end--



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-26历代安卓版本回顾(使用者角度+开发者角度)长期更新!!!,安卓开发者
  • 2017-05-224.2.2 Service进阶
  • 2017-05-26手机影音2--软件架构分析,影音2--架构分析
  • 2017-05-26android:Activity启动模式之singleInstance
  • 2017-05-26android之仿微信双击放大字体及滑动冲突,文本显示不全,android放大字体
  • 2017-05-26Android与HTML+JS交互入门
  • 2017-05-26location of the android sdk has not been setup in the preferences,androidpreferences
  • 2017-05-26快速自动更新Android Studio版本
  • 2017-05-26Greenplum 由于备master节点故障导致gp无法启动处理
  • 2017-05-26Android 之 Intent(意图),androidintent意图

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 精品干货丨APP常用导航框架,干货丨app导航
    • 2.5.1 ListView Item多布局的实现
    • 用户登录(Material Design + Data-Binding + MVP架构模式)实现,data-bindingmvp
    • 解决通过Intent调用系统拍照程序,返回图片太小的问题,intent调用
    • android学习第一天(android的介绍和基础):,android第一天
    • Android 6.0 Permission权限与安全机制,androidpermission
    • 谷歌电子市场3--应用,谷歌电子市场3--
    • clipChildren属性,clipchildren
    • 点击文本改变改行背景色,弹出对话框,改行背景
    • Android UI ListView的使用,androidlistview

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有