下面通过文字说明给大家详解nginx上传文件全部缓存解决方案。
因为应用服务器(Jetty)里面实现了上传时写了进度条。经过缓存。就没法读取到进度了。此外,在Nginx处缓存文件,也降低了传输效率。
nginx采用1.5.6。
后端采用nodejs+formidable的方式接受上传文件,本问题的对应与采用什么样的后端没太大关系,这里只是交代一下。
问题:
立即学习“Java免费学习笔记(深入)”;
在前端页面上将文件上传,nginx没有将每一块收到的文件数据块转发给后端,而是全部缓存了下来,全部收取完成后再一块一块的转发给后端,显而易见的是上传时间就被延长了许多。
涉及问题的模块:ngx_http_core_module
对应方法:
dboxShare 是一款简便易用的免费开源企业网盘,基于 .NET 技术开发,用于构建安全高效的文件云存储及云管理平台。 用户无需改变工作习惯,文件双向同步将会根据相应的权限自动进行上传、下载及版本更替,为共享协作提供便捷高效的解决方案。 系统具有安装简单、部署灵活和维护量小的特点,适用于企业组织及团队搭建安全高效的私有云网盘。
0
将nginx的版本升级到1.7.11以上。
添加指令:proxy_request_buffering off
指令说明如下图:

参考:
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_request_buffering
重启nginx,即可解决。
通过此方案解决了好多Nginx上传文件全部缓存的问题,解决方案也不止本文一个方法,还有其他的,欢迎大家多多分享自己的解决方案。
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号