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;
}
しかし、ファイル全体がアップロードされた場合でも、このエラーが発生します。
NGINX構成ファイルの変更
Sudo nano /etc/nginx/nginx.conf
この変数を検索:client_max_body_size
。見つかったら、たとえばサイズを100Mに増やしてください。存在しない場合は、httpの内部と末尾に追加できます。
client_max_body_size 100M;
Nginxを再起動して変更を適用します。
Sudo service nginx restart
アップロード制限のためにPHP.iniファイルを変更
すべての構成で必要なわけではありませんが、PHPアップロード設定も変更して、php構成による制限を超えないようにする必要があります。
PHP5-FPMを使用している場合は、次のコマンドを使用します。
Sudo nano /etc/php5/fpm/php.ini
PHP7.0-FPMを使用している場合は、次のコマンドを使用します。
Sudo nano /etc/php/7.0/fpm/php.ini
次のディレクティブを1つずつ見つけます
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
それはうまくいきます!!!
そのサイズのファイルをアップロードする場合は、ボディサイズチェックを無効にする必要があります。
client_max_body_size 0;
尊重して、なぜあなたが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経由でアップロードしようとすると、そのうちの1つだけがオプションになります(つまり、httpsを使用している場合は#1)。
上記のいずれかまたは他のいくつかの代替手段を検討していただければ幸いです。