Skip to content
신선한 자몽 농장
Go back

Synology Photos 썸네일이 안 보이는 문제 해결기

어느 날 사진이 안 보이기 시작했다

Synology NAS에서 운영 중인 Photos가 어느 날부터 제대로 동작하지 않기 시작했다.

증상은 이랬다.

저장된 사진은 멀쩡하게 있는데 Photos에서만 보이지 않는 상태였다.


환경


처음 의심한 건 썸네일 캐시였다

가장 먼저 떠오른 건 썸네일 캐시 또는 인덱싱 문제였다.

Synology는 썸네일을 @eaDir 폴더에 저장한다. 확인해봤다.

find /volume1/@eaDir -type f | wc -l

결과가 좀 이상했다.

11

수만 장 사진이 있는데 썸네일 파일이 11개뿐이었다.


Photos 재시작부터 해봤다

일단 서비스를 재시작했다.

synopkg stop SynologyPhotos
synopkg start SynologyPhotos
synopkg status SynologyPhotos

실행 상태는 정상이었다.


인덱스 전체 재생성

Photos 인덱스를 강제로 다시 만들었다.

synoindex -R all

CPU 사용량이 올라가면서 아래 프로세스들이 떴다.

synoindexscand
synomkthumbd
synofoto-task-center
postgres

잠깐은 복구되는 것처럼 보였다.


Photos 내부 데이터까지 초기화했다

그래도 해결이 안 돼서 Photos 데이터를 아예 날리고 재설치했다.

synopkg stop SynologyPhotos

mv /volume1/@appdata/SynologyPhotos \
   /volume1/@appdata/SynologyPhotos_bak

mv /volume1/@appconf/SynologyPhotos \
   /volume1/@appconf/SynologyPhotos_bak

재설치 후 다시 인덱싱했지만 증상은 그대로였다.


로그를 뒤져봤다

문제가 계속되니 시스템 로그를 살펴봤다.

tail -n 200 /var/log/messages

중간에 이런 로그가 눈에 띄었다.

synothumb fail

또는

libexiv2.so segfault

Photos 내부 DB 오류로 보이는 것도 있었다.

Query execute failed
Cannot prepare statement

이쯤 되니 인덱스 문제가 아니라 Photos 처리 엔진 자체 문제가 아닐까 의심했다.


NAS 재부팅, Photos 재설치까지 다 해봤다

할 수 있는 건 다 해봤다.

결과는 전부 동일했다.


진짜 원인은 전혀 다른 곳에 있었다

이것저것 다 해봤는데 원인을 못찾아서 그냥 포기하고 있던 상태에서 정말 우연치않게 다른 곳에서 원인을 찾게되었다.

집에 구성된 NAS는 내 개인용 자료 뿐 아니라 가족 구성원들의 자료를 보관하는 용도로 사용하고 있다.

어느날 동생이 NAS에 있는 엑셀과 PDF 파일이 웹 DSM과 Windows의 SMB 환경에서는 열람이되지만, DS File 앱을 통해 접속 시에는 에러 메세지가 발생한다고 하였다.

설마 그럴리가 하고 가지고 있는 모바일 기기에서 접속 시 동일하게 오류가 발생했고, 이에 직접 열기가 아닌 다른 앱을 통해 열기를 시도했다.

그러자 익숙한 메세지가 보였다. “정책에 의한 차단 403” 이는 리버스 프록시를 위해 운영 중인 Nginx Proxy Guard 서비스에서 출력하는 메세지였다.

생각해보니 문제가 발생했던 시점이 기존 duckdns를 사용하다가 Nginx와 도메인을 구성한 시점이라 어느정도 맞아떨어졌다.

바로 NPG 관리자 페이지에 접속해서 NAS의 도메인 설정을 확인하였고 해당 메세지와 연관있는 BlockExploits 설정을 확인해봤다.

Block Common Exploits
☑ 활성화

바로 이게 문제였다.


왜 이게 문제가 됐을까

Synology Photos는 내부적으로 다양한 API를 호출한다.

/webapi/entry.cgi
/webapi/query.cgi
/webapi/auth.cgi

Nginx Proxy Guard의 Block Common Exploits 규칙이 이 경로들을 공격 패턴으로 오탐지하고 있었던 것이다. 결과적으로 구조가 이렇게 됐다.

브라우저

Nginx Proxy Guard (← 여기서 차단)

Synology Photos API

그러니까

라는 증상이 나온 것이다.


해결 방법

Nginx Proxy Guard에서 해당 Proxy Host 설정을 열고 옵션을 끄면 된다.

Block Common Exploits
☐ 비활성화

저장하자마자 Photos가 정상으로 돌아왔다.


결과

변경 직후 모든 게 한꺼번에 해결됐다.


정리

이번 문제를 겪으면서 처음에 의심했던 것들은 이랬다.

실제 원인은 하나였다.

Nginx Proxy Guard
→ Block Common Exploits
→ Photos API 차단

Synology Photos에 접근은 되는데 이미지만 안 보이는 상황, 특히 Reverse Proxy를 경유해서 운영 중이라면 이 옵션부터 먼저 의심하는 게 맞다.

삽질을 줄이고 싶다면 직접 접속과 Proxy 경유 접속을 먼저 비교해보자. 직접 접속에서 정상이면 Proxy 설정 쪽을 보면 된다.


같은 증상이라면

아래 조건에 해당된다면 Reverse Proxy 설정부터 확인해보자.

Nginx Proxy Guard를 쓰고 있다면 Block Common Exploits 옵션을 가장 먼저 꺼보자.



Next Post
Discord 봇 개발 과정