example.com 링크가 생겼어요. 어디서 온 건가요?

안녕하세요,

백업 내보내기/가져오기를 사용하여 Discourse 인스턴스를 한 호스트에서 다른 호스트로, 멀티사이트 구성에서 단일 컨테이너를 사용하는 단일 호스트 구성으로 이전했습니다. 그런데 일부 링크가 올바른 호스트 대신 www.example.com을 사용하고 있습니다.

이 문제를 어떻게 해결할 수 있을까요?

DISCOURSE_HOST를 호스트명으로 설정했지만, 문제가 해결되지 않는 것 같습니다. www.example.com의 발생 위치를 찾기 위해 사용할 수 있는 SQL 쿼리가 있을까요?

도메인 이름 변경 또는 Discourse 이름 변경에 설명된 대로 리맵을 해보는 것은 어떨까요?

제 추측으로는 어딘가에서 해당 호스트네임으로 설정된 부분이 있을 것입니다. 다만, 어떻게 그렇게 되었는지는 추측하기 어렵습니다.

@hellekin 님 안녕하세요

Rails 콘솔에서 다음과 같이 “example” 문자열로 모든 사이트 설정을 빠르게 검색할 수 있습니다:

SiteSetting.where('value LIKE ?', "%example%")

예를 들어, 우리의 Discourse 인스턴스에서:

[1] pry(main)> SiteSetting.where('value LIKE ?', "%unix\.com%").count
=> 10

REDIS를 확인하려면 (데이터 컨테이너가 app에 있다고 가정하고) 필요에 따라 변경하여 다음을 시도해 보세요:

docker exec -it app redis-cli

그런 다음, 다음과 같은 명령을 시도해 보세요:

127.0.0.1:6379> KEYS *example*
(empty list or set)

또 다른 예시:

127.0.0.1:6379> KEYS *unix*
1) "default:_CACHE:onebox__https://www.unix.com/man-page/linux/1/df/"
2) "ANON_CACHE_text/html,application/xhtml+xml,application/signed-exchange;v=b3,application/xml;q=0.9,*/*;q=0.8_https_community.unix.com/t/passing-variables-to-awk/150198|m=true|c=true|b=true|t=|ca=|l=_count"
3) "default:_CACHE:onebox__https://www.unix.com/aix/56317-timestamp-sh_history-using-ksh-shell.html"

모든 전역 설정을 빠르게 확인하려면 Rails 콘솔에서 다음을 실행할 수 있으며, 그러면 모든 전역 설정이 표시됩니다(더 나은 방법이 있을 것이라고 확신하지만, 이 방법은 빠르고 잘 작동합니다):

[1] pry(main)> GlobalSetting.as_json

도움이 되기를 바랍니다.

@pfaffman 님이 공유하신 링크를 확인해 보니, DISCOURSE_HOSTNAME 대신 DISCOURSE_HOST를 사용했던 것을 알게 되었습니다.

@neounix 님의 유용한 조사 팁에도 불구하고 결과를 얻지 못했기 때문에, 첫 번째 문제가 현재 상황의 원인이 될 것으로 추정됩니다. 컨테이너를 다시 빌드해 보겠습니다…

컨테이너를 다시 빌드했고, 이전에 깨져 있던 이미지들이 이제 정상적으로 표시됩니다. 따라서 문제가 해결된 것으로 보입니다. 두 분 모두 감사합니다!

@pfaffman 수정이 제대로 적용되었는지 확인하기 위해 https://meta.discourse.org/t/activitypub-support-phase-1-rfc/132624/27에 대해 rebuild HTML을 실행해 주시겠습니까?

네, 코드를 살펴본 지금은 그 말이 완벽하게 이해됩니다. Discourse 설정은 설정 파일에서 기본 호스트명을 "www.example.com"으로 설정하므로, 빌드 파일에 실수가 있었다면(예를 들어 @hellekin 님이 설명하신 것처럼) 기본값이 사용될 것입니다 :slight_smile:

어느 날 누군가가 이 기본 설정값을 다음과 같이 변경할 수도 있겠네요:

hostname = "www.hostname-missing-check-yml-file.com"

:slight_smile: :slight_smile:

여기에는 관리자 권한이 없습니다. 다른 사이트에서 사이트의 임베드가 정상적으로 작동하는지 확인하려면 try.discourse.org에서 테스트해 볼 수 있습니다.

hostname = "please.set.DISCOURSE_HOSTNAME.env.example"가 더 명확하고 RFC에 부합할 것 같습니다.

감사합니다. 이미 다른 곳에서 테스트를 해 보았지만, 이 게시물이 업데이트되기를 원했을 뿐입니다 :slight_smile:

버튼을 눌렀습니다. 이미지가 표시되는 것 같습니다!