84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
1、上传文件平均大小10M左右2、目前暂时用的apache,听说换nginx能加快速度?
欢迎选择我的课程,让我们一起见证您的进步~~
在文件上传过程中PHP-FPM并不会被阻塞,因为Nginx接收完上传的内容后才一次性交给PHP-FPM.Nginx和PHP-FPM的工作进程各自只开1个.以2KB每秒上传图片:
time trickle -s -u 2 curl \ -F "action=info.php" \ -F "upload_file=@linux.jpeg;type=image/jpeg" \ -F "submit=提交" \ http://www.example.com/app/info.php sudo netstat -antp|egrep "curl|nginx|fpm"
发现只有nginx和curl处于ESTABLISHED状态,nginx和fpm都没有被阻塞.
top -p 4075 可见Nginx单线程. sudo strace -p 4075 可见Nginx调用recvfrom接收数据并且pwrite保存数据. sudo strace -p 13751 可见PHP-FPM是在Nginx接收完成用户上传的数据时才获取数据.
上传慢主要还是带宽问题,可能是用户带宽,也可能是服务器带宽不够.
上传文件跟你本地的网络带宽有关吧
换上传带宽快的网络,跟PHP和Nginx没关系。
nginx 有个文件上传的 module https://github.com/vkholodkov/nginx-upload-module/tree/2.2,利用这个模块,文件上传接收处理就直接交给nginx,nginx 直接把文件的相关参数传给php,这样php只接收文件相关参数,如文件大小、临时保存位置、类型等,不需处理提交过来的文件流
nginx
module
php
在文件上传过程中PHP-FPM并不会被阻塞,因为Nginx接收完上传的内容后才一次性交给PHP-FPM.
Nginx和PHP-FPM的工作进程各自只开1个.
以2KB每秒上传图片:
发现只有nginx和curl处于ESTABLISHED状态,nginx和fpm都没有被阻塞.
上传慢主要还是带宽问题,可能是用户带宽,也可能是服务器带宽不够.
上传文件跟你本地的网络带宽有关吧
换上传带宽快的网络,跟PHP和Nginx没关系。
nginx
有个文件上传的module
https://github.com/vkholodkov/nginx-upload-module/tree/2.2,利用这个模块,文件上传接收处理就直接交给nginx
,nginx
直接把文件的相关参数传给php
,这样php
只接收文件相关参数,如文件大小、临时保存位置、类型等,不需处理提交过来的文件流