NextCloud 큰 파일 업로드

큰 파일 업로드할 때 필요한 설정을 정리했습니다. 방법은 Uploading big files > 512MB — ownCloud 9.0 Server Administration Manual 9.0 documentation 페이지와 Uploading files up to 16GB · owncloud/documentation Wiki 페이지에 나와 있습니다. 예전에 다른 클라우드 프로그램을 테스트하면서 참조한 페이지인데 요긴하네요.


일단 설정만 간단히 보여드리겠습니다. 제대로 문서화할 시간이 없네요. ㅜㅜ


아래 설정을 하기 전에 쉘에서 다음 명령을 실행하여 업로드에 사용할 두 폴더를 만듭니다.

# 관리자 권한으로 실행하세요.

sudo su

# NextCloud를 설치한 폴더로 이동합니다.

cd /media/549ab2fc-aefa-4f0e-85f2-58e20839296e/Web/NextCloud/

# 폴더 두 개를 만듭니다.

mkdir -p tmpdir/client

mkdir -p tmpdir/php

# 소유권을 조정합니다.

chown -R www-data:www-data tmpdir


모든 기존 설정은 착한유령님 글 기준이고, 수정하는 설정은 최대 업로드 크기를 16GB로 만들기 위한 것입니다.


먼저 Nginx 풀 설정입니다. 빨간색으로 표시한 설정들이 필요한 설정입니다.


Extra options의 내용은 다음과 같습니다.


php_value[max_input_time] = 3600

php_value[output_buffering] = Off

php_value[upload_tmp_dir] = "/media/549ab2fc-aefa-4f0e-85f2-58e20839296e/Web/NextCloud/tmpdir/php"

request_terminate_timeout = 0


/media/549ab2fc-aefa-4f0e-85f2-58e20839296e/Web/NextCloud/tmpdir/php 부분을 각자의 폴더 위치로 바꿔야 합니다.


Nginx 서버 설정은 Extra options만 조금 바뀝니다. 아, Header buffer size를 32k로 수정해서 사용하고 있습니다.


Extra options 내용입니다.


### Start of extra options

   client_max_body_size 16400M; # set max upload size

   client_body_temp_path /media/549ab2fc-aefa-4f0e-85f2-58e20839296e/Web/NextCloud/tmpdir/client;

   client_body_buffer_size 1048576k;


   fastcgi_buffers 64 4K;


   rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;

   rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;

   rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;


   index index.php;

   error_page 403 /core/templates/403.php;

   error_page 404 /core/templates/404.php;


   location = /robots.txt {

       allow all;

       log_not_found off;

       access_log off;

   }


   location ~ ^/(data|config|\.ht|db_structure\.xml|README) {

       deny all;

   }


   location / {

       # The following 2 rules are only needed with webfinger

       rewrite ^/.well-known/host-meta /public.php?service=host-meta last;

       rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;


       rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;

       rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;


       rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;


       try_files $uri $uri/ index.php;

   }


   location ~ ^(.+?\.php)(/.*)?$ {

       try_files $1 = 404;


       include fastcgi_params;

       fastcgi_param SCRIPT_FILENAME $document_root$1;

       fastcgi_param PATH_INFO $2;

       fastcgi_param HTTPS off;

       fastcgi_pass $socket;

       fastcgi_read_timeout 600;

   }


   # Optional: set long EXPIRES header on static assets

   location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {

       expires 30d;

       # Optional: Don't log access to assets

       access_log off;

   }

### End of extra options


착한유령님 설정에서 바뀐 부분은 파란색으로 표시해 두었습니다.


추가: 로그아웃하고 다시 로그인하면 ssl 프로토콜로 리디렉션되어서 찾아보니 [듀얼이 설치기] NextCloud on OMW : 네이버 카페에 해결책이 있더군요. 설정에 반영했습니다.


OMV 안에서 이렇게 설정하면 php.ini나 php-fpm www.conf에 적용됩니다. 제대로 적용되었는지는 php.info 파일을 만들어서 출력을 보면 확인할 수 있습니다. 문제는 NextCloud Admin > Additional settings에서 Maximum upload size를 변경해도 설정이 적용되지 않네요. 도대체 어디에다 설정하는지를 모르겠습니다.


여하튼 이렇게 하면 업로드는 됩니다. 다만 아직 4 GB가 넘는 파일을 올리면 시간 초과 경고가 나타나는데(파일은 올라갑니다) 이건 더 들여다봐야 할 것 같습니다. 그러니까 아직 임시적인 해결책인거죠. 웹 응용 프로그램은 좀 알고 있다고 생각했는데 중간에 OMV가 끼어 있으니 다시 초보 리셋이네요 -.,-


이론적인 것에 관심이 있으시다면 아래 링크를 참조하세요.



'IT > Cloud' 카테고리의 다른 글

LEMP Stack 설치  (0) 2019.02.05
Nextcloud 설치하기 2(총망라)  (0) 2019.02.02
Nextcloud 설치하기  (0) 2018.07.11
조대협의블로그(자바, 클라우드 관련) - 글 추천  (0) 2018.03.09