首页 > nginx > 优化nginx+fastcgi上传

优化nginx+fastcgi上传

2010年8月6日 eric 发表评论 阅读评论

由于公司网站的项目要用到用户上传20M左右的文件,经过测试发现,上传的时候php-fpm单个进程占用CPU利用率大而长,上传速度也不是很理想,如果是多个人上传,效果就会更糟糕。在看nginx官网网站的时候。看到nginx支持POST,原理是这样的,POST到nginx的产生一个临时文件,nginx接受到数据在转移到FastCGI,这样多了一次复制过程和内存开销,比较浪费。但是对于上传大文件来说速度有明显改善。但是光nginx支持不够,还需要php-fpm的支持。

添加这个功能需要修改nginx配置文件:

http
{
.......
添加如下:
client_body_in_file_only clean;
client_body_temp_path /dev/shm 1 2;
fastcgi_param  REQUEST_BODY_FILE  $request_body_file;
...
}

最好使用内存文件系统 /dev/shm 这样减少对磁盘的读写,减少了 磁盘 I/O,这样大大的优化了NGINX上传速度。

转载请注明:文章转载自:Eric's linux and nginx! (http://www.nginxs.com)
本文地址:http://www.nginxs.com/linux/221.html

分类: nginx 标签: , ,
  1. 2010年9月3日13:18 | #1

    既然是要做大文件上传,我推荐你用 nginx upload module
    文档:http://www.grid.net.ru/nginx/upload.en.html
    在以前公司用过,速度很快,比fastcgi做节省数倍的资源和时间

  2. 2010年9月3日18:15 | #2

    谢谢,看看·不过这种方法的速度也很快~

您必须在 登录 后才能发布评论.