질문:
PHP 파일의 느린 업로드 속도와 관련하여 최적화 방법이 있습니까?
1. 업로드되는 파일의 평균 크기는 약 10M입니다
2. 현재는 Apache를 사용하고 있는데, nginx로 전환한다고 들었습니다. 속도를 높일 수 있나요?
해결책:
PHP-FPM은 파일 업로드 프로세스 중에 차단되지 않습니다. Nginx는 파일을 수신할 때까지 차단되지 않기 때문입니다. 업로드된 콘텐츠를 한 번에 PHP-FPM에 넘깁니다. Nginx와 PHP-FPM의 작업 프로세스는 각각 하나만 열립니다.
초당 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.phpsudo netstat -antp|egrep "curl|nginx|fpm"
top -p 4075 可见Nginx单线程. sudo strace -p 4075 可见Nginx调用recvfrom接收数据并且pwrite保存数据. sudo strace -p 13751 可见PHP-FPM是在Nginx接收完成用户上传的数据时才获取数据.