이 가이드는 시놀로지 NAS의 Docker(Container Manager)를 통해 Calibre 또는 Calibre-Web 서버를 설치하고, 역방향 프록시로 외부 접속을 설정한 사용자가 흔히 겪는 파일 업로드 실패 문제를 해결하는 것을 목표로 합니다.
문제의 핵심 원인은 크게 두 가지입니다.
- Nginx의 업로드 용량 제한: 시놀로지 웹서버(Nginx)가 기본적으로 큰 파일의 업로드를 허용하지 않습니다.
- Docker 컨테이너의 파일 접근 권한: Docker 안의 Calibre 프로세스가 NAS 저장소의 폴더에 파일을 쓸 권한이 없습니다.
아래 절차를 순서대로 진행하면 이 두 가지 문제를 모두 해결할 수 있습니다.
1단계: Nginx 설정 수정 (업로드 용량 제한 해제)
이 단계는 SSH(터미널)를 통해 NAS에 접속하여 진행합니다.
- SSH 접속
- PC에서 터미널 프로그램(PuTTY, Terminal 등)을 사용하여 관리자 계정으로 시놀로지 NAS에 접속합니다.
- Nginx 설정 파일 열기
- vi 에디터를 사용하여 Nginx 설정 파일을 엽니다.
sudo vi /etc/nginx/nginx.conf - 업로드 용량 설정 추가
- i 키를 눌러 입력 모드로 전환합니다.
- http { ... } 블록 안의 적당한 위치에 아래 코드를 추가합니다. (1024m은 1GB를 의미하며, 필요에 따라 2048m 등으로 조절할 수 있습니다.)
http { # ... 다른 설정들 ... client_max_body_size 1024m; # ... 다른 설정들 ... }- Esc 키를 눌러 명령 모드로 돌아온 뒤, :wq를 입력하고 Enter를 눌러 파일을 저장하고 종료합니다.
- Nginx 설정 문법 검사
- 저장한 파일에 오류가 없는지 확인합니다. 이는 매우 중요한 과정입니다.
sudo nginx -t- [warn] 경고는 무시해도 괜찮습니다. 마지막에 syntax is ok와 test is successful 메시지가 나타나면 성공입니다. 만약 [error]가 발생하면 3번 단계로 돌아가 오타가 없는지 확인합니다.
- Nginx 서비스 재시작
- 아래 명령어를 입력하여 수정된 설정을 최종 적용합니다.
sudo synopkg restart WebStation- 이 명령어가 Web Station 패키지 전체를 재시작하므로 가장 확실합니다.
2단계: Docker 컨테이너 권한 문제 해결 (PUID/PGID 설정)
이 단계는 시놀로지 DSM의 Container Manager GUI를 통해 진행합니다.
- 사용자 ID(PUID, PGID) 확인
- SSH(터미널) 창에 id 명령어를 입력하여 현재 접속한 관리자 계정의 uid와 gid 번호를 확인하고 기억해 둡니다.
# 예시 출력 uid=1026(jongmin) gid=100(users)- 이 경우 PUID는 1026, PGID는 100이 됩니다.
- Container Manager에서 컨테이너 복제 및 수정
- Container Manager는 생성된 컨테이너의 중요 설정을 직접 편집하는 대신, 복제를 통해 새로 만드는 방식을 사용합니다.
- DSM에서 Container Manager를 실행하고 [컨테이너] 탭으로 이동합니다.
- 수정할 Calibre 컨테이너를 선택하고 **[작업] > [중지]**를 눌러 컨테이너를 정지시킵니다.
- 컨테이너가 중지되면, 다시 선택하고 **[작업] > [복제]**를 클릭합니다.
- 컨테이너 설정 창이 나타나면, 하단의 [고급 설정] 버튼을 클릭합니다.
- 고급 설정 창에서 [환경] 탭으로 이동합니다.
- [추가] 버튼을 눌러 아래 두 환경 변수를 추가하거나, 이미 있다면 값을 수정합니다.
- 변수: PUID / 값: 1번 단계에서 확인한 uid 번호 (예: 1026)
- 변수: PGID / 값: 1번 단계에서 확인한 gid 번호 (예: 100)
- **[저장]**을 눌러 고급 설정을 닫고, 마법사를 완료하여 복제된 새 컨테이너를 생성합니다.
- 최종 확인 및 정리
- 새로 생성된 컨테이너(이름 뒤에 2 등이 붙어있을 수 있음)를 시작합니다.
- Calibre에 접속하여 파일 업로드가 정상적으로 완료되는지 테스트합니다.
- 테스트가 성공적이면, 기존에 사용하던 원본 컨테이너는 삭제하여 중복 실행을 방지합니다.
이것으로 모든 설정이 완료되었습니다.
'IT 관련 > 기타' 카테고리의 다른 글
| 윈도우 11 설치 usb 만들기 (1) | 2025.12.01 |
|---|---|
| vi 에디터 사용법 (0) | 2025.09.28 |
| pyenv 파이썬 버전 관리 (0) | 2025.08.25 |
| 미니콘다(Miniconda) 설치 방법 (1) | 2025.07.11 |
| python 가상화 비교(아나콘다, python) (2) | 2025.07.08 |