0
0

nginx关闭上传文件的缓存

RobinDong 发表于 2013年12月12日 15:02 | Hits: 4249
Tag: 工作故事 | nginx | tengine

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上翻了一下,是这个补丁,小补丁帮大忙。

感谢@淘文景同学的工作和耐心:)

原文链接: http://blog.donghao.org/2013/12/12/nginx%e5%85%b3%e9%97%ad%e4%b8%8a%e4%bc%a0%e6%96%87%e4%bb%b6%e7%9a%84%e7%bc%93%e5%ad%98/

0     0

我要给这篇文章打分:

可以不填写评论, 而只是打分. 如果发表评论, 你可以给的分值是-5到+5, 否则, 你只能评-1, +1两种分数. 你的评论可能需要审核.

评价列表(0)