# 임베드가 “토론 로딩 중…”에 멈추거나 주제가 생성되지 않나요? 해결 방법 안내

**URL:** https://meta.discourse.org/t/embeds-stuck-on-loading-discussion-topic-not-created-heres-the-fix/374029
**Category:** Support
**Created:** [7월 13, 2025, 5:50오전 UTC](https://meta.discourse.org/t/embeds-stuck-on-loading-discussion-topic-not-created-heres-the-fix/374029 "2025-07-13T05:50:46Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![nlambert](https://avatars.discourse-cdn.com/v4/letter/n/ecccb3/32.png) [@nlambert](https://meta.discourse.org/u/nlambert)
#### Post date: [7월 13, 2025, 5:50오전 UTC](https://meta.discourse.org/t/embeds-stuck-on-loading-discussion-topic-not-created-heres-the-fix/374029/1 "2025-07-13T05:50:46Z")

</div>

며칠 동안 많은 분들이 댓글 임베드 관련 해결책을 검색하고 게시하고 있는 것을 알게 되었습니다. 저도 그중 한 명입니다. 이 글이 같은 상황에 처한 분들에게 도움이 되기를 바랍니다.

저는 Discourse를 처음 사용하므로, 제가 제공한 정보에 대한 심층적인 전문 지식을 보충해 주실 분은 자유롭게 참여해 주세요.

해당 주제에 대한 수많은 게시글을 검토해 본 후, 제가 말씀드릴 수 있는 것은 문제의 원인이 매우 다양할 수 있다는 것입니다. 저와 같은 상황에 계신 분들을 위해, 해결책을 소개합니다!

## 문제

1. "Loading discussion…"라고 표시되는 임베드를 발견합니다.
2. Discourse 주제가 자동으로 생성되지 않습니다.

## 해결책

허용된 내부 호스트 목록에 도메인을 추가해 보세요.

이것은 _관리자_ 영역에서 찾을 수 있는 사이트 설정입니다. Discourse 사이트의 다음 경로에서 찾을 수 있습니다:

> `/admin/site_settings/category/all_results`

제가 언급하는 설정으로 바로 이동하는 링크는 다음과 같습니다:

> `/admin/site_settings/category/all_results?filter=allowed_internal_hosts`

Rails 콘솔을 보고 계신 분들을 위해, 다음을 확인해 주세요:

> `SiteSetting.allowed_internal_hosts`

이 설정은 파이프(`|`)로 구분된 도메인 이름 목록입니다.

### 배경

제 Discourse 인스턴스는 공개되어 있지만, 내부 DNS가 일부 도메인을 로컬로 해석합니다. 이는 Docker, Kubernetes 또는 내부 DNS가 있는 환경에서 발생할 수 있습니다.

Discourse를 처음 사용하게 된 터라, 지금은 당연하게 보이는 것이 처음에는 정말로 명확하지 않았다고 말씀드리고 싶습니다.

Discourse 내부 구조에 익숙하지 않은 우리는 [2017년에 SSRF 보호 기능이 구현되었다는 사실](https://meta.discourse.org/t/allow-list-of-internal-hosts-for-scanning/64442)이나 그 보호 기능의 구체적인 사항조차 알지 못했습니다. 사후에야 그 발표가 이 연결고리를 명확하게 보여준다는 것을 알게 되었습니다.

이것은 잘 구현된 기능이지만, 매우 단순한 이유로 인해 꽤나 깊은 늪(rabbit hole)이었습니다.

### 알아두어야 할 것

도메인이 로컬 IP로 해석되는 경우, Discourse는 임베드를 위해 주제를 생성하지 않습니다.

아직 소리 지르지 마세요. 이것은 좋은 일입니다. 왜 그런지 알아보려면 SSRF에 대해 읽어보시고, 이를 심각하게 받아들이는 Discourse 개발자들에게 감사의 뜻을 전할 수도 있습니다.

문제는 Discourse가 주제를 생성하지 않는 이유와 "loading discussion…"에서 멈추는 이유를 알려주는 피드백을 제공하지 않는다는 것입니다.

### 추가 읽을거리

그렇다면 로컬 IP가 정확히 무엇일까요? 관심 있는 분들을 위해, 답은 바로 Discourse 코드에서 찾을 수 있습니다. GitHub의 해당 파일로 가는 [직접 링크](https://github.com/discourse/discourse/blob/main/lib/final_destination/ssrf_detector.rb#L11-L51)를 제공합니다.

예를 들어, **super-forum[dot]com**의 Discourse 인스턴스가 **cool-blog[dot]net**을 호스팅하는 네트워크에 있는 경우, 내부 DNS가 **cool-blog[dot]net**을 로컬 IP로 해석할 수 있으며, 이는 허용 목록(allowlist)에 등록되지 않는 한 Discourse가 거부합니다.

이 글이 다른 누군가에게 몇 시간의 고민을, 어쩌면 몇 가닥의 머리카락까지도 절약해 주기를 바랍니다.

---

_[View the full topic](https://meta.discourse.org/t/embeds-stuck-on-loading-discussion-topic-not-created-heres-the-fix/374029)._
