84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
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
只接收文件相关参数,如文件大小、临时保存位置、类型等,不需处理提交过来的文件流