긴 ZimaOS 지원 토론의 네 번째 페이지로, 첫 번째 원격 액세스 설정에 성공한 후에도 한 사용자가 Jellyfin과 Nginx Proxy Manager에서 반복적으로 겪은 문제를 다룹니다. 핵심 교훈은 특정한 하나의 마법 같은 포트가 있다는 것이 아닙니다. 리버스 프록시 대상, Jellyfin 포트 매핑, Docker 네트워크 또는 애플리케이션 상태가 변경될 때마다 502 오류가 다시 발생할 수 있습니다.
이 페이지는 게시물 61~80만 다룹니다. 같은 스레드에서 앞서 다룬 DuckDNS 및 인증서 설정은 반복하지 않습니다.
NPM API 메시지와 Jellyfin 502를 분리하세요
처음에 사용자에게 “API와 통신하지 못했습니다. NPM이 제대로 실행되고 있나요?”라는 메시지가 표시되었습니다. 커뮤니티 로그 검토 결과 Nginx Proxy Manager 자체는 실행 중이었고 Let's Encrypt 갱신도 성공했습니다. 따라서 일시적인 API 메시지는 오래된 브라우저 세션이나 잠깐 발생한 UI와 백엔드 간 연결 중단 때문일 수 있으며, 외부에서 발생한 502 오류는 별개의 프록시와 Jellyfin 간 문제로 남았습니다.
세 가지 주소 유형을 구분하세요
| 주소 유형 | 예시 역할 | NPM이 이 주소로 전달해야 하나요? |
|---|---|---|
| 공용 WAN 주소 | DuckDNS로 업데이트되는 ISP 측 주소 | 아니요 |
| ZimaOS LAN 주소 | 안정적인 홈 네트워크 주소(예:) 192.168.1.50
|
예, Jellyfin이 호스트 포트를 게시하는 경우 |
| Docker 컨테이너 주소 또는 이름 | 다음과 같은 내부 엔드포인트 jellyfin:8096
|
예, NPM이 동일한 Docker 네트워크에 연결할 수 있는 경우에만 |
이 스레드에서는 컨테이너 이름, 호스트 LAN 주소, 내부 Docker 주소가 계속 뒤섞였습니다. 이들은 서로 바꿔 사용할 수 없습니다. 지원되는 경로 하나를 선택하고 TLS나 DNS를 변경하기 전에 NPM 컨테이너에서 테스트하세요.
포트 매핑을 올바른 방향으로 읽기
Jellyfin 설정에 호스트 포트가 표시됨 8097 컨테이너 포트에 매핑됨 8096. NPM이 ZimaOS LAN 주소를 통해 연결하는 경우 게시된 호스트 포트를 사용해야 합니다. NPM이 공유 Docker 네트워크에서 컨테이너 이름으로 직접 연결하는 경우에는 일반적으로 Jellyfin의 내부 포트를 사용합니다.
NPM 내부에서 연결이 재설정되었다는 것은 선택한 경로가 여전히 유효한 Jellyfin 응답을 반환하지 않았다는 뜻입니다. 두 컨테이너를 단순히 다시 시작하는 것보다 더 유용한 증거입니다.
단계적 진단 순서 사용
- 프록시를 건드리기 전에 Jellyfin을 로컬에서 열고 재생을 확인하세요.
- Jellyfin 컨테이너가 실행 중인지 확인하고 저장된 호스트/컨테이너 포트 매핑을 확인하세요.
- 안정적인 ZimaOS LAN 주소와 호스트에 게시된 포트 조합 또는 공유 네트워크에서 컨테이너 이름과 내부 포트 조합 중 하나를 선택하세요.
- NPM 환경에서 해당 정확한 엔드포인트를 테스트하세요.
- HTTP 라우팅이 작동한 후에만 TLS를 다시 활성화하고 공개 도메인을 테스트하세요.
- 앱을 편집하거나 재부팅한 후에는 DNS를 변경하기 전에 로컬 및 프록시 테스트를 다시 수행하세요.
미디어 경로 편집으로 다른 문제가 발생할 수 있습니다
이후 원격 사용자는 Jellyfin을 탐색할 수 있었지만 미디어를 재생할 수 없었습니다. 소유자가 Jellyfin의 컨테이너 설정을 변경하자 공개 사이트가 응답을 중지했습니다. 이후 커뮤니티의 로그 검토에서 Jellyfin이 실행 중이며 다음 경로를 스캔하고 있음이 확인되었습니다. /Media/Movies을 참조했기 때문이며, 이로 인해 관심이 다시 프록시 대상 서버로 이동했습니다. 이는 각 변경 사항을 독립적으로 기록하고 테스트해야 하는 이유를 보여 줍니다.
백업 중 Linux 경로는 대소문자를 구분합니다
구성 백업이 실패한 이유는 명령에서 /DATA/AppData/duckdns, 반면 실제 디렉터리는 /DATA/AppData/DuckDNS. Linux에서는 해당 경로가 서로 다른 경로로 처리됩니다. 원본 스레드에서는 커뮤니티가 제작한 아카이브 명령을 제안했지만 IceWhale이 제공한 명령이 아니므로 공식 백업 절차로 재현하지 않습니다.
AppData를 보관하기 전에 정확한 디렉터리 이름을 나열하고, 데이터베이스에 일관된 스냅샷이 필요한 경우 애플리케이션을 중지한 다음, 아카이브 사본을 임시 위치에 복원하여 확인하세요.
현재 지원되는 원격 액세스
관리 및 파일 액세스를 위해 현재 ZimaOS 문서는 암호화된 피어 투 피어 액세스를 ZimaClient 원격 액세스를 통해 제공하는 방법을 안내합니다. 공개 Jellyfin 리버스 프록시는 고급 타사 구성으로 남아 있으며, ZimaOS 대시보드가 아닌 미디어 서비스만 외부에 노출해야 합니다.
Jellyfin 502 FAQ
“NPM API failed”라는 메시지가 NPM이 중지되었다는 것을 입증하나요?
아니요. 해당 스레드에서는 브라우저에 그 메시지가 표시되는 동안에도 NPM 로그와 인증서 갱신은 정상적이었습니다.
NPM은 8096 포트를 사용해야 하나요, 아니면 8097 포트를 사용해야 하나요?
컨테이너 간 직접 네트워킹을 사용할 때는 내부 포트를 사용하고, ZimaOS LAN 주소로 전달할 때는 호스트에 게시된 포트를 사용하세요.
백업에서 DuckDNS가 존재하지 않는다고 표시된 이유는 무엇인가요?
실제 AppData 폴더는 대문자 D와 DNS를 사용했으며, Linux 경로는 대소문자를 구분합니다.
