我正在上传一个26Gb文件,但我得到:
413 Request Entity Too Large
我知道,这与client_max_body_size有关,所以我将此参数设置为30000M 。
location /supercap { root /media/ss/synology_office/server_Seq-Cap/; index index.html; proxy_pass http://api/supercap; } location /supercap/pipe { client_max_body_size 30000M; client_body_buffer_size 200000k; proxy_pass http://api/supercap/pipe; client_body_temp_path /media/ss/synology_office/server_Seq-Cap/tmp_nginx; }
但是当整个file upload的时候,我仍然得到这个错误。
修改NGINXconfiguration文件
sudo nano /etc/nginx/nginx.conf
search这个variables: client_max_body_size 。 例如,如果你find它,就把它的大小增加到100M。 如果它不存在,那么你可以在http的内部和之后添加它
client_max_body_size 100M;
重新启动nginx以应用更改。
sudo service nginx restart
修改上传限制的PHP.ini文件
这并不是所有configuration都需要的,但是您也可能需要修改PHP上传设置,以确保没有任何事情会因为phpconfiguration而超出限制。
如果您正在使用PHP5-FPM,请使用以下命令,
sudo nano /etc/php5/fpm/php.ini
如果您使用的是PHP7.0-FPM,请使用以下命令,
sudo nano /etc/php/7.0/fpm/php.ini
现在逐个查找下面的指令
upload_max_filesize post_max_size
并将其限制为100M,默认为8M和2M。
upload_max_filesize = 100M post_max_size = 100M
最后保存并重新启动PHP。
PHP5-FPM用户使用这个,
sudo service php5-fpm restart
PHP7.0-FPM用户使用这个,
sudo service php7.0-fpm restart
它会正常工作!
尊重,我不知道你为什么使用http传输这么多的数据。 我倾向于通过ssh进行大量传输
//such as: tar cjf - /path/to/stuff | ssh user@remote-host "cd /path/to/remote/stuff;tar xjf -"
…这给了我一个bzip压缩传输。 但是,如果我需要做一个可恢复的传输,我可能会使用sftp,lftp,甚至rsync。 任何这些(或其衍生物或兄弟姐妹)都有能力
尝试通过http上传时,只有其中的一个是您的select(即,如果您使用的是https,则为#1)。
我希望你会看看上面的或其他几个select。