nginx+php-fpm 上传大文件的设置
大文件上传要注意几个环节
1,上传文件需要花费较长上传时间和处理执行时间,需要设置nginx上传时间、延攻php执行超时时间
2,大文件处理需要占用较大内存,需要增加php内存池,考虑到有多个文件上传处理的并发,这个内存建议根据并发相乘
以下为每个应用的相关配置
nginx的修改
send_timeout 60;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
client_max_body_size 30m;
php的修改
upload_max_filesize 500M
post_max_size 500M
max_input_time 300
max_execution_time 300
php-fpm注意参数
request_terminate_timeout
request_slowlog_timeout
这两个参数如果设置过小的话会导致文件传输了一部分后连接关闭。
举例如下:
2014/07/08 23:00:40 [error] 56794#0: *10350 upstream timed out (60: Operation timed out) while reading response header from upstream, client: 127.0.0.1, server: www.4wei.cn, request: “POST /uploadurl/ HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9000”, host: “www.4wei.cn”
由于后端执行时间超时(Operation timed out),超出了nginx的请求时间,需要延长fastcgi_read_timeout时间