aksiksi
(Assil)
1
다른 도메인에 새로운 Discourse 인스턴스를 생성하고 백업에서 복원했습니다. 모든 과정이 순조롭게 진행되었지만, 로고가 전혀 표시되지 않았습니다(기본 로고가 아닌 모두 공란 상태). 그래서 Branding 메뉴를 통해 로고를 다시 업로드해 보았습니다.
새 로고를 업로드할 때의 Discourse 로그는 다음과 같습니다:
New : /uploads/default/original/1X/75a192f211147f512bdddabaf50addd43c6a9d86.png
Previous : /images/discourse-logo-sketch.png
하지만 업로드 디렉토리를 확인해 보니 해당 이미지가 존재하지 않습니다:
/var/discourse# tree shared/standalone/uploads/default/ | grep 75a1
참고로 이 잘못된 로고 파일명(해시?)은 여전히 온라인 상태인 원본 Discord 인스턴스의 파일명과 일치합니다:
New : /uploads/default/original/1X/75a192f211147f512bdddabaf50addd43c6a9d86.png
여기서 무엇이 잘못되었는지 알 수 있는 단서가 있을까요? 새 인스턴스를 생성하고 신선한 백업에서 복원해야 할까요?
감사합니다.
Stephen
(Stephen)
3
여기서 도움을 드리기 위해 환경에 대해 더 많은 정보가 필요합니다.
- 새 인스턴스는 어떻게 설치되었나요?
- 리버스 프록시나 CloudFlare 뒤에 있나요?
aksiksi
(Assil)
5
이건 업데이트입니다. 오늘 새 인스턴스를 생성했는데, 백업에서 로고가 정상적으로 복원되었습니다. 아마 일시적인 문제였던 것 같습니다.
aksiksi
(Assil)
6
그 말 잊어 주세요, 다시 같은 문제가 발생했네요… 그러니까, 로고 이미지는 브라우저 캐시를 지울 때까지는 정상적으로 작동했습니다.
해결 방법
근본 원인은 복원 작업 중에 대부분의 이미지가 정상적으로 복원되지 않았기 때문이었습니다. tarball을 수동으로 추출하고 누락된 이미지를 Discourse 업로드 디렉터리로 복사하여 문제를 해결했습니다.
분석
새로운 로고를 업로드하려고 하면 다음과 같은 현상이 발생합니다:
- 이미지 업로드는 정상적으로 작동하는 것으로 보입니다:
- 하지만 업로드된 이미지를 표시하기 위한 후속 GET 요청은 404 에러를 반환합니다:
- 업로드 디렉터리에 해당 이미지가 존재하지 않습니다:
/var/discourse# tree shared/standalone/uploads/default/original/
shared/standalone/uploads/default/original/
`-- 1X
|-- 52b3aff4e63a7e38bef42d469bafd1ed7c1cc1a2.png
`-- e952cfd4c1bc58e77024e4c2b518531356319780.png
백업 tarball에는 다음 내용이 포함되어 있습니다:
/tmp# tar tvzf ask-tunisians-2020-07-28-042934-v20200728004302.tar.gz
-rw-r--r-- discourse/www-data 11767008 2020-07-28 04:29 dump.sql.gz
drwxr-xr-x discourse/www-data 0 2020-07-26 21:11 var/www/discourse/public/uploads/default/
drwxr-xr-x discourse/www-data 0 2020-07-26 21:11 var/www/discourse/public/uploads/default/original/
drwxr-xr-x discourse/www-data 0 2020-07-27 20:33 var/www/discourse/public/uploads/default/original/1X/
-rw-r--r-- discourse/www-data 14843 2020-07-26 21:56 var/www/discourse/public/uploads/default/original/1X/7835873085d7323b640c2504cd737b51f370360f.png
-rw-r--r-- discourse/www-data 9039 2020-07-27 20:33 var/www/discourse/public/uploads/default/original/1X/75a192f211147f512bdddabaf50addd43c6a9d86.png
-rw-r--r-- discourse/www-data 5783 2020-07-26 21:56 var/www/discourse/public/uploads/default/original/1X/19629775936660ecc73235158b4d68b9ec4b2abe.png
-rw-r--r-- discourse/www-data 11124 2020-07-26 21:11 var/www/discourse/public/uploads/default/original/1X/e952cfd4c1bc58e77024e4c2b518531356319780.png
-rw-r--r-- discourse/www-data 35570 2020-07-26 21:11 var/www/discourse/public/uploads/default/original/1X/52b3aff4e63a7e38bef42d469bafd1ed7c1cc1a2.png
-rw-r--r-- discourse/www-data 2375 2020-07-26 21:56 var/www/discourse/public/uploads/default/original/1X/d4af3550a7c3f857c974b996257c8e3db72e7850.png
-rw-r--r-- discourse/www-data 9759 2020-07-26 22:14 var/www/discourse/public/uploads/default/original/1X/dfc47da4c22ffeddf59f736a46a2c50ee55d7fa1.png
-rw-r--r-- discourse/www-data 24898 2020-07-26 21:46 var/www/discourse/public/uploads/default/original/1X/d832b24f2cb338139984be98045d22e0af093c4a.png
분명히 이미지는 존재했지만, 복원 작업의 일부로 대부분의 이미지가 왜 올바르게 복사되지 않았는지가 궁금합니다.