0
0
0
---
nginx关闭上传文件的缓存
RobinDong 发表于 2013年12月12日 15:02 | Hits: 4249
nginx-1.5.7做前端,一个c语言写的deamon用fastcgi做后端。同时上传多个大文件的时候,报了"Internal Error“,查看发现是/usr/目录满了。仔细一查,是因为我把nginx装到了/usr/local/nginx下面,结果,nginx默认会把上传文件缓存到 /usr/local/nginx/client_body_temp/ ,结果爆了。
于是,漫长的google之旅开始了。查了很多文章,有人说加一个"fastcgi_buffering off;“,试了不行,又有人说还要加"proxy_buffering off;”,试了还不行。然后是nginx的官方wiki说可以用HttpUploadProgressModule来做,我装上以后发现这玩意儿就是用来显示上传进度的,跟缓存不缓存一点关系也没有,或者是我弄错意思了?(http://wiki.nginx.org/Faq)
Q:Can I disable the buffering for upload progress? // How can I display upload progress on the client side? A: These are both very frequently asked questions. Currently the only solution is the third-party module Nginx Upload Progress. (This functionality is planned for a future release of Nginx.)
最后找到这篇,显然有很多人遇到了跟我一样的问题,从里面"Weibin Yao“的回答来看,tengine已经加了方便这一功能的补丁。"Weibin Yao”,喔,原来是@淘文景同学,上次我问过他的,他早就告诉了我正确答案:下载最新版的tengine-1.5.2,然后在配置里加上
fastcgi_request_buffering off;
即可。是我自己稀里糊涂的拿upstream的nginx测试了这么久,唉。
照@淘文景同学所说搭了环境,一测,非常好,再没有讨厌的client_body_temp缓存了。在tengine的github上翻了一下,是这个补丁,小补丁帮大忙。
感谢@淘文景同学的工作和耐心
我要给这篇文章打分:
可以不填写评论, 而只是打分. 如果发表评论, 你可以给的分值是-5到+5, 否则, 你只能评-1, +1两种分数. 你的评论可能需要审核.