我正在上传一个 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;
}
Run Code Online (Sandbox Code Playgroud)
但是当整个文件上传后,我仍然收到这个错误。
小智 118
修改 NGINX 配置文件
sudo nano /etc/nginx/nginx.conf
Run Code Online (Sandbox Code Playgroud)
搜索此变量:client_max_body_size
。例如,如果找到它,只需将其大小增加到 100M。如果它不存在,那么您可以将其添加到 http 的内部和末尾
client_max_body_size 100M;
Run Code Online (Sandbox Code Playgroud)
重新启动 nginx 以应用更改。
sudo service nginx restart
Run Code Online (Sandbox Code Playgroud)
修改 PHP.ini 文件以限制上传
并非所有配置都需要它,但您可能还必须修改 PHP 上传设置,以确保 php 配置不会超出限制。
如果您使用的是 PHP5-FPM,请使用以下命令,
sudo nano /etc/php5/fpm/php.ini
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 PHP7.0-FPM,请使用以下命令,
sudo nano /etc/php/7.0/fpm/php.ini
Run Code Online (Sandbox Code Playgroud)
现在一一找到以下指令
upload_max_filesize
post_max_size
Run Code Online (Sandbox Code Playgroud)
并将其限制增加到 100M,默认情况下它们是 8M 和 2M。
upload_max_filesize = 100M
post_max_size = 100M
Run Code Online (Sandbox Code Playgroud)
最后保存并重启PHP。
PHP5-FPM 用户使用这个,
sudo service php5-fpm restart
Run Code Online (Sandbox Code Playgroud)
PHP7.0-FPM 用户使用这个,
sudo service php7.0-fpm restart
Run Code Online (Sandbox Code Playgroud)
它会工作得很好!!!
dev*_*ius 23
如果您要上传该大小的文件,您可能应该完全禁用正文大小检查:
client_max_body_size 0;
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我不确定您为什么要使用 http 来传输这么多数据。我倾向于通过 ssh 进行大额传输
//such as:
tar cjf - /path/to/stuff | ssh user@remote-host "cd /path/to/remote/stuff;tar xjf -"
Run Code Online (Sandbox Code Playgroud)
...这给了我一个 bzip 压缩的传输。但如果我需要进行可恢复的传输,我可能会使用 sftp、lftp,甚至 rsync。这些(或其衍生物或兄弟姐妹)中的任何一个都能够
尝试通过 http 上传时,只有其中一个是您的选择(即,如果您使用 https,则为 #1)。
我希望你能研究以上任何一个或其他几个替代方案。
归档时间: |
|
查看次数: |
134575 次 |
最近记录: |