LINUX.ORG.RU
решено ФорумAdmin

Nginx выдает Bad Request при upload'е больших файлов

 , , ,


0

2

Всем привет!
Друзья, столкнулся с такой проблемой - на локальном сервере работает nextcloud в docker-контейнере, веб-морда проксируется через nginx.

При попытке загрузить файл более 10 GB (уже в самом конце загрузки), выдает ошибку Bad Request.

Лог nginx:


192.168.48.68 - - [28/Aug/2017:05:30:25 +0000] "PUT /remote.php/webdav/Terminator2.mkv HTTP/1.1" 400 249 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"




Конфиг проксирующего nginx-a ниже


 server {
  listen 8080;
  server_name cloud.loc;
  return 301 https://$host$request_uri;
}

server {
  listen 4430 ssl;
  server_name cloud.loc;

  ssl_certificate /certs/onlyoffice.crt;
  ssl_certificate_key /certs/onlyoffice.key;

server_tokens off;
ssl on; 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_ecdh_curve X25519:P-521:P-384;



ssl_verify_client off;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

ssl_prefer_server_ciphers on; 

ssl_session_cache  builtin:1000  shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_tickets off;
#keepalive_timeout 60000;
#client_header_buffer_size 128k;
#large_client_header_buffers 32 64k;

#include /etc/nginx/conf/ssl_params;

#include /etc/nginx/conf/headers_params;
#add_header X-Content-Type-Options nosniff;


#add_header X-Frame-Options SAMEORIGIN;
#add_header X-Content-Type-Options nosniff;
#add_header X-XSS-Protection "1; mode=block";

proxy_buffering off;
proxy_max_temp_file_size 30720m;

client_max_body_size 25G; # change this value it according to $UPLOAD_MAX_SIZE



    location / { 
    proxy_pass http://nextcloud:8888;
    include /etc/nginx/conf/proxy_params;
        
   #add_header X-XSS-Protection "1; mode=block";
  }
}

В NextCloud ошибка такая:


Sabre\DAV\Exception\BadRequest: expected filesize 19527210336 got 2603241472


Подозреваю, что нужно допилить конфиг проксирующего nginx, не не знаю, как именно.

Подскажите, пожалуйста!


А что у тебя здесь?

/var/www/nextcloud/.user.ini

Путь до nextcloud может отличаться, разумеется.

Deleted
()
Последнее исправление: ifelse (всего исправлений: 1)

В php.ini какие параметры указаны?

Посмотри документацию на контейнер, возможно, что там есть переменная окружения, отвечающая за максимальный размер загружаемого файла.

Deleted
()
Последнее исправление: ifelse (всего исправлений: 1)
Ответ на: комментарий от Deleted

cat /nextcloud/.user.ini

upload_max_filesize=511M
post_max_size=511M
memory_limit=512M
mbstring.func_overload=0
always_populate_raw_post_data=-1
default_charset='UTF-8'
output_buffering=0


Думаешь первый параметр за это отвечает?

cat php/etc/php-fpm.conf 
[global]
daemonize = no
error_log = /php/logs/error.log

[www]
listen = /php/run/php-fpm.sock
pm = dynamic
pm.max_children = 15
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 6
chdir = /
request_terminate_timeout = 0
env[PATH] = /usr/local/bin:/usr/bin:/bin
php_admin_value[post_max_size] = 25G
php_admin_value[upload_max_filesize] = 25G
php_admin_value[max_execution_time] = 10800
php_admin_value[max_input_time] = 3600
php_admin_value[expose_php] = Off
php_admin_value[memory_limit] = 512M
php_admin_value[session.save_path] = "/php/session"

Fess88
() автор топика
Ответ на: комментарий от Fess88

Проблема решилась, как оказалось - при загрузке большого файла docker кэширует его на корневой раздел, в /var/tmp, на котором было недостаточно места для такого большого файла.

Всем спасибо за участие!

Fess88
() автор топика
Ответ на: комментарий от Fess88

А ларчик просто открывался. Забавно :)

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.