# /user-badges.json에서 대량의 오류 발생

**URL:** https://meta.discourse.org/t/large-amount-of-errors-on-user-badges-json/272618
**Category:** Self-hosting
**Created:** [7월 24, 2023, 10:16오전 UTC](https://meta.discourse.org/t/large-amount-of-errors-on-user-badges-json/272618 "2023-07-24T10:16:31Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Crius](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/crius/32/317214_2.png) [@Crius](https://meta.discourse.org/u/Crius)
#### Post date: [7월 24, 2023, 10:16오전 UTC](https://meta.discourse.org/t/large-amount-of-errors-on-user-badges-json/272618/1 "2023-07-24T10:16:32Z")

</div>

다시 한번 여러분을 귀찮게 하게 되었습니다.

저희 사용자는 기술에 익숙한 사람들이 상당수 차지하며, 이들은 제가 꽤 전에 발견했지만 포럼 관리 외의 다른 업무로 인해 보류하기로 했던 문제를 제기했습니다. 🙄

어쨌든, 오늘은 이사가 있기 때문에 사람들이 집을 포장하는 중이라 어차피 일을 할 수 없는 상황입니다.

이 문제를 꽤 오랫동안 인지하고 있었지만, 왜 특정 사용자의 배지를 반환하는 엔드포인트에서만 발생하는지 파악하지 못하고 있습니다.

필요하다면 지원팀에 전달할 수 있는 224k줄의 로그가 있지만, 여기에는 요약을 한 발췌를 게시할 수 있습니다:

```plaintext
2023/07/23 00:31:58 [error] 69#69: *12563 limiting requests, excess: 12.164 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/Quiroga.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:58 [error] 67#67: *7122 limiting requests, excess: 12.140 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/kAr.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 66#66: *11749 limiting requests, excess: 12.844 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/LorenzoLamas.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *13835 limiting requests, excess: 12.844 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/Predy.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *12563 limiting requests, excess: 12.808 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/licher.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 67#67: *7122 limiting requests, excess: 12.772 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/JaKo.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *8391 limiting requests, excess: 12.592 by zone "flood", client: 162.158.129.16, server: _, request: "GET /user-badges/Quiroga.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 68#68: *13829 limiting requests, excess: 12.664 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/OrangE.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *13842 limiting requests, excess: 12.412 by zone "flood", client: 162.158.129.16, server: _, request: "GET /user-badges/CrazyWildhog.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 66#66: *11749 limiting requests, excess: 12.424 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/Clive.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *13835 limiting requests, excess: 12.400 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/MARGIO.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 67#67: *7122 limiting requests, excess: 12.176 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/licher.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 68#68: *13829 limiting requests, excess: 12.164 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/Cardoza.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 66#66: *11749 limiting requests, excess: 12.164 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/Lord_Phobos.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *13835 limiting requests, excess: 12.140 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/Nomeacaso.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 66#66: *12559 limiting requests, excess: 12.936 by zone "flood", client: 162.158.129.16, server: _, request: "GET /user-badges/MARGIO.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *13836 limiting requests, excess: 12.924 by zone "flood", client: 162.158.129.16, server: _, request: "GET /user-badges/Nemo.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 68#68: *13830 limiting requests, excess: 12.020 by zone "flood", client: 162.158.129.16, server: _, request: "GET /user-badges/LorenzoLamas.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 66#66: *11749 limiting requests, excess: 12.544 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/Nightmare.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *13835 limiting requests, excess: 12.484 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/MARGIO.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *13836 limiting requests, excess: 12.232 by zone "flood", client: 162.158.129.16, server: _, request: "GET /user-badges/Lord_Phobos.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *12563 limiting requests, excess: 12.316 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/inglo.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *8391 limiting requests, excess: 12.148 by zone "flood", client: 162.158.129.16, server: _, request: "GET /user-badges/PogueMahone.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 68#68: *13830 limiting requests, excess: 12.316 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/OrangE.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 67#67: *7122 limiting requests, excess: 12.100 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/JaKo.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 66#66: *11749 limiting requests, excess: 12.088 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/licher.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *13835 limiting requests, excess: 12.016 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/Sheika.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *13836 limiting requests, excess: 12.680 by zone "flood", client: 162.158.129.16, server: _, request: "GET /user-badges/CrazyWildhog.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 69#69: *8391 limiting requests, excess: 12.296 by zone "flood", client: 162.158.129.16, server: _, request: "GET /user-badges/Lord_Phobos.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 68#68: *13830 limiting requests, excess: 12.380 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/OrangE.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 67#67: *7122 limiting requests, excess: 12.128 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/licher.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 66#66: *11749 limiting requests, excess: 12.056 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/RisVIII.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"
2023/07/23 00:31:59 [error] 68#68: *13829 limiting requests, excess: 12.420 by zone "flood", client: 162.158.129.17, server: _, request: "GET /user-badges/Chuck.json HTTP/2.0", host: "OMITTED.COM", referrer: "https://OMITTED.COM/t/la-volta-in-cui-ah-non-avevo-capito-un-cazz/838164/78"

```

`OMITTED.COM`은 물론 실제 호스트네임이 아닙니다. 😛

이것은 프로메테우스(Prometheus) 메트릭에서도 확인되는 내용이며, 제 생각에는 에러 요청 수가 확실히 너무 높은 수치입니다.

 ![image](https://global.discourse-cdn.com/meta/original/4X/6/2/d/62dc5112a87928becff158141894486934a27243.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/5/d/8/5d8269be6c2e2bd131176f9f3a20cd72cd2551f4.png)

레이트 리밋을 생각해 봤지만, 이는 해당 특정 엔드포인트에서만 발생하고 있습니다(적어도 훨씬 더 많이 발생하는 것 같습니다). 그리고 만약 레이트 리밋 문제라면 다른 GET 요청에서도 발생해야 하지 않을까요?

우선 이것이 무엇 때문에 발생하는지 이해하려고 노력하고 있습니다. 힌트나 추가 정보 요청은 모두 환영합니다.

향후 3~4일 안에 이사를 진행 중이므로 이번 주에는 응답이 느릴 수 있음을 양해 부탁드립니다. 😩

감사합니다!

---

<div class="post-metadata">

### Author: ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)
#### Post date: [7월 24, 2023, 11:18오전 UTC](https://meta.discourse.org/t/large-amount-of-errors-on-user-badges-json/272618/2 "2023-07-24T11:18:56Z")

</div>

도움이 되길 바라며, 이 글이 부담이 되지 않기를 바라면서, 185개의 게시글이 있는 해당 스레드의 스크린샷을 공유합니다:

 ![image](https://global.discourse-cdn.com/meta/original/4X/5/0/6/5067b3c4d2d641af63e20433448c6e64f395f6e2.png)

---

<div class="post-metadata">

### Author: ![Crius](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/crius/32/317214_2.png) [@Crius](https://meta.discourse.org/u/Crius)
#### Post date: [7월 24, 2023, 1:31오후 UTC](https://meta.discourse.org/t/large-amount-of-errors-on-user-badges-json/272618/3 "2023-07-24T13:31:28Z")

</div>

@Ed\_S님, 감사합니다. 호스트명이 평문으로 노출되지 않는 한 문제없습니다. 그냥 봇이나 아마추어 해커들이 작은 커뮤니티 포럼에서 너무 쉽게 노는 걸 원치 않을 뿐이에요.

기대했던 것보다 훨씬 더 많은 시간을 쓰고 있네요 😆

---

<div class="post-metadata">

### Author: ![hello-smile6](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hello-smile6/32/304628_2.png) [@hello-smile6](https://meta.discourse.org/u/hello-smile6)
#### Post date: [7월 25, 2023, 12:53오전 UTC](https://meta.discourse.org/t/large-amount-of-errors-on-user-badges-json/272618/4 "2023-07-25T00:53:27Z")

</div>

Cloudflare의 HTTP 리버스 프록시 기능을 사용하고 있는 것으로 보이지만, Cloudflare 서버가 요청 시 전송하는 실제 IP를 사용하도록 nginx가 구성되지 않은 것 같습니다. 이로 인해 문제가 발생할 수 있습니다(모든 요청이 동일한 출처에서 온 것처럼 보이면, 과도한 요청을 보내는 사용자가 한 명뿐이어도 모든 사용자가 레이트 리미트의 영향을 받게 됩니다).

---

<div class="post-metadata">

### Author: ![Crius](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/crius/32/317214_2.png) [@Crius](https://meta.discourse.org/u/Crius)
#### Post date: [7월 28, 2023, 10:06오후 UTC](https://meta.discourse.org/t/large-amount-of-errors-on-user-badges-json/272618/5 "2023-07-28T22:06:48Z")

</div>

힌트를 주셔서 감사합니다. 이 문제를 해결하는 방법에 대해 읽어볼 수 있는 주제나 가이드가 있을까요?

리버스 프록시는 실제 IP를 노출하지 않도록 하라는 VPS 소유자의 요청으로 설치한 것입니다.

---

<div class="post-metadata">

### Author: ![hello-smile6](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hello-smile6/32/304628_2.png) [@hello-smile6](https://meta.discourse.org/u/hello-smile6)
#### Post date: [7월 29, 2023, 3:52오전 UTC](https://meta.discourse.org/t/large-amount-of-errors-on-user-badges-json/272618/6 "2023-07-29T03:52:18Z")

</div>

> [@sam](#):
>
> X-Forwarded-For 신뢰 설정이 필요합니다. Cloudflare의 경우 `cloudflare.template.yml`을 `app.yml` 파일에 추가하세요.

그 템플릿을 추가하면 올바르게 작동합니까?

---

<div class="post-metadata">

### Author: ![Crius](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/crius/32/317214_2.png) [@Crius](https://meta.discourse.org/u/Crius)
#### Post date: [7월 29, 2023, 10:02오후 UTC](https://meta.discourse.org/t/large-amount-of-errors-on-user-badges-json/272618/7 "2023-07-29T22:02:31Z")

</div>

지금 재구축 중입니다. 밤새 두었다가 내일/월요일에 다시 확인할 거예요 (아직 이사한 집에서 박스를 여는 중이라 😩)

수정: 재구축 직후 바로 확인해 보니 문제가 해결된 것 같아요 👍

어쨌든 며칠 후에 업데이트를 올리겠습니다!

---

<div class="post-metadata">

### Author: ![Crius](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/crius/32/317214_2.png) [@Crius](https://meta.discourse.org/u/Crius)
#### Post date: [8월 19, 2023, 4:10오후 UTC](https://meta.discourse.org/t/large-amount-of-errors-on-user-badges-json/272618/8 "2023-08-19T16:10:28Z")

</div>

“몇일 후”: 네, Cloudflare용 추가 템플릿을 활성화하면 해당 배지 요청이 실패하는 문제가 해결되었습니다.

또한 관리자/모더레이터용 IP 필터가 모든 사용자를 동일한 IP로 표시하는 문제 등 다른 문제들도 해결했습니다.

하지만 prometheus 스레이프를 통해 받는 모니터링에서는 여전히 많은 오류가 표시됩니다.  
아마 nginx 로그를 살펴볼 시간을 찾아야 할 것 같습니다.

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/0/9/209a658a44f9ca9d05f22fc8928d836d86fef578.png)  
 ![image](https://global.discourse-cdn.com/meta/original/4X/4/1/5/415f8229a36f7667e4374e2d0b3c332c651d4662.png)
