# Imgur 이미지가 렌더링되지 않는 이유: 서버 속도 제한

**URL:** https://meta.discourse.org/t/imgur-images-not-rendering-because-server-is-rate-limited/285179
**Category:** Development
**Tags:** rest-api
**Created:** [11월 11, 2023, 1:55오후 UTC](https://meta.discourse.org/t/imgur-images-not-rendering-because-server-is-rate-limited/285179 "2023-11-11T13:55:00Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![winston-yallow](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/winston-yallow/32/339990_2.png) [@winston-yallow](https://meta.discourse.org/u/winston-yallow)
#### Post date: [11월 11, 2023, 1:55오후 UTC](https://meta.discourse.org/t/imgur-images-not-rendering-because-server-is-rate-limited/285179/1 "2023-11-11T13:55:00Z")

</div>

API를 통해 게시물을 추가했습니다. 해당 게시물에는 다음 스니펫이 포함되어 있습니다:

```md
![Here is an example](https://i.imgur.com/LaUXRKW.png)

```

여기서 볼 수 있듯이, 에디터에서는 올바르게 렌더링됩니다:

 ![image](https://global.discourse-cdn.com/meta/original/4X/c/b/f/cbf2126a878f0cf300e8ad2868269b1b60814e9a.png)

처음 저장한 후에는 토픽에서도 올바르게 표시됩니다. 그러나 웹사이트를 새로고침하면 다음과 같이 렌더링됩니다:  
 ![image](https://global.discourse-cdn.com/meta/original/4X/b/d/a/bda2dcca3ea33c858d8ed1ed2f8628b60fe5ab66.png)

이미 시도해 본 것들:

- 데이터베이스의 원본 콘텐츠가 올바른지 확인
- 웹 인터페이스에서 “Rebuild HTML” 선택
- 서버 콘솔에서 `rake posts:rebake` 실행 (오류 없음)
- 오래된 렌더링을 보고 있지 않도록 브라우저 캐시 비활성화
- `./launcher restart app`을 통해 앱 재시작
- 전체 서버 재시작

이 시점에서 더 무엇을 해야 할지 모르겠습니다. 이 문제를 더 깊이 디버깅하는 방법에 대한 팁이 있을까요?

이것은 도커를 사용하여 설치한 새로운 표준 설치 버전입니다. 현재 버전은 `3.2.0.beta4-dev`입니다.

---

<div class="post-metadata">

### Author: ![Arkshine](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/arkshine/32/298682_2.png) [@Arkshine](https://meta.discourse.org/u/Arkshine)
#### Post date: [11월 11, 2023, 2:32오후 UTC](https://meta.discourse.org/t/imgur-images-not-rendering-because-server-is-rate-limited/285179/2 "2023-11-11T14:32:01Z")

</div>

확실하게 하기 위해, 메시지를 수동으로 생성해도 여전히 발생하는 건가요?

또한, 이건 좀 무리한 아이디어일 수 있지만, 이미지를 표시하기 위해 위에 새 줄을 삽입해 보셨나요?

제 환경에서는 API를 사용하거나 수동으로 처리해 보았지만, 재현하지 못했습니다. 🤔

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [11월 11, 2023, 2:35오후 UTC](https://meta.discourse.org/t/imgur-images-not-rendering-because-server-is-rate-limited/285179/3 "2023-11-11T14:35:15Z")

</div>

이미지 링크를 추가하는 해당 형식에 대해 잘 모르겠지만, 문제가 `block hotlinked media` 설정과 관련이 있을 수 있겠다는 생각이 들었습니다.

---

<div class="post-metadata">

### Author: ![winston-yallow](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/winston-yallow/32/339990_2.png) [@winston-yallow](https://meta.discourse.org/u/winston-yallow)
#### Post date: [11월 11, 2023, 2:40오후 UTC](https://meta.discourse.org/t/imgur-images-not-rendering-because-server-is-rate-limited/285179/4 "2023-11-11T14:40:20Z")

</div>

아이디어는 감사하지만, 제 인스턴스에서는 이 설정이 활성화되어 있지 않습니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [11월 11, 2023, 2:43오후 UTC](https://meta.discourse.org/t/imgur-images-not-rendering-because-server-is-rate-limited/285179/5 "2023-11-11T14:43:34Z")

</div>

서버가 imgur에 의해 속도 제한(rate limit)을 받았습니다. 브라우저로는 이미지를 볼 수 있지만, 서버에서 다운로드할 수는 없습니다.

curl 또는 wget을 사용하여 서버에서 이미지를 가져오려 하면 오류가 발생합니다.

---

<div class="post-metadata">

### Author: ![winston-yallow](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/winston-yallow/32/339990_2.png) [@winston-yallow](https://meta.discourse.org/u/winston-yallow)
#### Post date: [11월 11, 2023, 2:44오후 UTC](https://meta.discourse.org/t/imgur-images-not-rendering-because-server-is-rate-limited/285179/6 "2023-11-11T14:44:46Z")

</div>

> [@Arkshine](#):
>
> 정확히 확인하자면, 메시지를 수동으로 생성해도 여전히 발생하는 건가요?

이 부분을 방금 테스트해 보았는데, 네, 거기서도 여전히 발생합니다. 따라서 API와 관련이 없는 것 같습니다(토픽 제목을 수정하겠습니다).

> [@Arkshine](#):
>
> 또한, 이건 랜덤한 아이디어지만, 이미지를 표시하기 위해 위쪽에 새 줄을 삽입해 보셨나요?  
> 저는 API를 사용하거나 수동으로 해보았지만 재현할 수 없었습니다. 🤔.

차이가 없습니다. 여전히 발생합니다. 재현에 관해서는, 다음 내용을 토픽 전체 내용으로 사용하면 이 문제를 안정적으로 재현할 수 있습니다:

```md
Test
![some alt text](https://i.imgur.com/LaUXRKW.png)

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/5/0/a/50a0ed16d7aa7c9df09bbb49692b249bf8bfc48e.png)

---

<div class="post-metadata">

### Author: ![winston-yallow](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/winston-yallow/32/339990_2.png) [@winston-yallow](https://meta.discourse.org/u/winston-yallow)
#### Post date: [11월 11, 2023, 2:54오후 UTC](https://meta.discourse.org/t/imgur-images-not-rendering-because-server-is-rate-limited/285179/7 "2023-11-11T14:54:23Z")

</div>

아, 알겠습니다. 이 현상은 이해가 갑니다. 왜냐하면 이 문제를 겪기 전에 12만 개의 주제를 가져왔기 때문에, 아마도 imgur에서 많은 수의 이미지를 가져왔을 것입니다.

이 부분을 짚어주셔서 감사합니다. 저는 클라이언트가 모든 이미지 요청을 처리한다고만 생각했거든요.

서버가 이러한 요청을 수행한다는 점이 흥미롭습니다. 원본 이미지가 사라지는 경우를 대비해 로컬에 캐싱하기 위해서인 것 같습니다. 12만 개의 게시물이 한꺼번에 생성되어 서버가 블랙리스트에 등록되거나 속도 제한(rate limit)에 걸리는 것을 방지하기 위해, 이 처리 과정을 좀 더 분산시키는 방법을 찾아보겠습니다. 현재는 이 서버에 대해서는 문제가 되지 않지만, 통합(integration) 단계에서 발생한 일입니다. 하지만 프로덕션 환경에서 가져오기를 수행할 때는 이런 상황을 피하고 싶습니다 😅

새로운 질문으로 계속 진행합니다: [How to spread out import over longer timer to prevent running into rate limits of external services](https://meta.discourse.org/t/how-to-spread-out-import-over-longer-timer-to-prevent-running-into-rate-limits-of-external-services/285186)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [11월 11, 2023, 3:14오후 UTC](https://meta.discourse.org/t/imgur-images-not-rendering-because-server-is-rate-limited/285179/8 "2023-11-11T15:14:45Z")

</div>

> [@winston-yallow](#):
>
> 120k개의 주제를 가져왔습니다. 그래서 imgur에서 많은 이미지를 가져온 것 같습니다.

맞습니다.

> [@winston-yallow](#):
>
> 원본이 사라질 경우를 대비해 로컬에 캐싱하기 위해서인 것 같습니다.

이 동작을 활성화하는 설정을 끄지 않는 한 그렇습니다.

> [@winston-yallow](#):
>
> 하지만 프로덕션에서 가져오기를 수행한 후에는 이를 방지하고 싶습니다.

다른 머신에서 가져오기를 수행한 뒤 백업을 프로덕션에 복원하세요. 더 복잡한 해결책은 서버가 프록시 서버를 통해 데이터를 가져오도록 하는 것입니다.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [12월 11, 2023, 3:15오후 UTC](https://meta.discourse.org/t/imgur-images-not-rendering-because-server-is-rate-limited/285179/9 "2023-12-11T15:15:40Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
