h5 + nginx + php 視頻上傳之突破文件大小受限的解決辦法


一、環境:

CentOS 6.8
nginx 1.8.0
php 7.0.10

二、背景

基於 nginx + php 的 h5 項目,上傳視頻的時候,如果視頻太大,會上傳失敗。

三、正文

一份視頻傳到后端,需要經過兩道關卡:

1、nginx
2、php

解決辦法 => 修改配置項(即下圖箭頭上的文字):

1、修改 nginx 配置

打開nginx.conf,修改:

client_max_body_size 500m;

重啟 nginx 后,上傳大小超過 200M 的視頻,才會報錯:

413 Request Entity Too Large

2、修改 php 配置

打開php.ini,修改:

upload_max_filesize 500M
post_max_size 550M
memory_limit 600M

重啟 php。

注:為什么要 upload_max_filesize < post_max_size < memory_limit

對於一個上傳文件的請求來講,存在以下等式:
POST DATA = 文件 Base64 + 表單其他項目數據,
HTTP DATA = HTTP HEAD + POST DATA。

文件大小由 upload_max_filesize 限制,
POST DATA 大小由 post_max_size 限制,
而整個 HTTP 請求的數據都會先放到內存緩存,即 HTTP DATA 的大小由 memory_limit 限制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM