Я загружаю файл размером 26 ГБ, но получаю:
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
. Если вы его найдете, просто увеличьте его размер, например, до 100 МБ. Если его не существует, вы можете добавить его внутри и в конец 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
Теперь найдите следующие директивы одну за другой
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).
Надеюсь, вы изучите любой из вышеперечисленных или несколько других альтернатив.