본문 바로가기

NAS/DSM Tip!

[Synology NAS][Redmine] 20M 이상 파일 업로드 오류!


 안녕하세요? 이번에 포스팅할 내용은 Synology Nas Redmine에서 20M 이상 파일 업로드가 안되는 문제점을 수정하기 위한 방법을 설명합니다. 

 그런데...? 뜬금 없이 20M이상 파일 업로드가 안된다니..? 흠...

이전 포스팅에서는 첨부파일 설정만 바꾸면 파일 업로드가 가능하다고 포스팅을 했었습니다. 




하지만, 오늘 동영상 파일을 첨부할 필요가 있어 첨부하던중 에러를 발견했습니다.


에러 메세지는 : Request Entity Too Large


허걱.. 파일이 너무 커서 업로드가 안되는 증상입니다. 


한숨만... 최대 첨부파일 크기는 100M로 설정했는데... 단순히 영상 파일은 50M일 뿐인데... 


그래서, 검색 신공을 발휘합니다.


 검색결과 nginx 설정값에 'client_max_body_size = 200m' 과 같이 설정하면 된다고 합니다! 올레!!!

근데.. nginx 설정 파일은 어디 있지..? 난 누구.. 여긴어디.. 하하하.. 자이제 열심히 파일을 뒤져봐야죠..


Synology Nas Docker기반 Redmine에는 ngix 1.6.2 버전이 설치되어 있습니다. 해당 파일의 설정 파일은 

'/etc/nginx/nginx.conf' 에 위치합니다. 하지만, 해당 파일에는 client_max_body_size 항목은 없죠..

Redmine에 해당하는 '/etc/nginx/sites-enabled/redmine' 로 설정파일이 되어있습니다. 


해당 파일을 열어서 확인해 보면, 


## Normal HTTP host

 server {

     생략

  ## Increase this if you want to upload large attachments

  client_max_body_size 20m;

     생략



 상기와 같이 'client_max_body_size'가 20M으로 설정된 것이 확인 가능합니다. 이 설정으로 인하여 20M이상 파일 업로드시 'Request Entity Too Large' 에러가 발생됩니다. 


 해당 설정 파일을 수정하면 모든 문제가 해결될 줄 알았습니다.. 하지만..... 설정 파일 변경 후 Redmine을 재시작하면, 'client_max_body_size'가 다시 20M으로 환원되버립니다. 


상기 파일 확인 방법은 다음과 같습니다. 



 위와 같이 Docker 내의 Redmine에서 직접 수정을 하면 설정 파일이 원복되면서 해당 파일을 변경할 수가 없습니다.


 여기까지와서 포기할 수는 없겠죠? 

추가로 정보를 더 확인해보니, Docker 기반 Redmine에서는 Docker에서 실행시 환경변수 'NGINX_MAX_UPLOAD_SIZE'를 변경해서 업로드 크기를 조정할 수 있다고 합니다. Docker에서 일반적으로 Redmine의 환경변수를 변경할 방법은 없습니다. 바로 패키지 센터에서 설치되었다는 점때문입니다. 패키지센터에서 배포되었기 때문에 임의적인 수정을 지원하지 않습니다. 


해당 부분을 수정하기 위해서는 Synology NAS에 속임수를 써야합니다. 마치 패키지 센터가 아닌 직접 소스를 이용해 설치한것 같은.. 속임수를 쓰는 거죠!


그 방법은 다음과 같습니다. 


/usr/syno/etc/package/Docker/mapping

/usr/syno/etc/package/Docker/synology_redmine.config


NAS의 상기 두개 파일 내부에 'is_package' 라는 항목을 false로 변경 적용하는 방법입니다. 
(상기 두개 파일은  docker가 아니라, NAS에 SSH로 접속하여 변경해야합니다.)

 해당 파일을 vi 또는 vim... 각자 취향의 에디터를 이용하여 'is_package'를 false로 변경 저장하신 뒤, 패키지 센터에서 docker를 재시작합니다. 


상기와 같은 과정을 거치셨다면, 이제 docker에서 Redmine의 제어가 가능합니다. 


Docker를 실행하신 후 다음과 같은 과정을 통해 환경변수를 추가하세요!





위와 같이 환경 변수를 설정한뒤  '/etc/nginx/sites-enabled/redmine' 파일을 재확인해 보시면, 'client_max_body_size' 항목이 200m으로 변경된것을 확인하실 수 있습니다. 


 이제 Redmine 사이트에서 20M이상 파일의 업로드가 가능해졌습니다. 테스트를 위해서 Redmine 문제점 첨부파일 항목에 50M 파일 첨부를 실행하니, 정상적으로 업로드 완료되었습니다. 


지금까지 첨부파일 업로드 삽질 기행기였습니다. 다음에는 더 좋은 내용으로 포스팅하도록 하겠습니다. 




'NAS > DSM Tip!' 카테고리의 다른 글

Synology Redmine SMTP 메일 서버설정  (6) 2017.06.01
Synology NAS Redmine SMTP 설정  (4) 2015.11.30
Synology NAS Redmine Plugin 설치 방법  (6) 2015.11.30
Synology NAS로 Redmine을 쉽게!  (0) 2015.11.30
작업 스케줄러 사용하기.  (0) 2014.04.04