aLinux
(aLinux )
8월 23, 2026, 1:42오후
1
안녕하세요
저는 UptimeRobot을 사용 중인데, 일주일에 몇 번씩 1~5분 정도 429 에러가 발생하는데, 로그에서 확인되는 내용입니다.
근본 원인
HTTP 429 - Too Many Requests
사건 시작 시각
2026-08-23 10:42:58
해결 시각
2026-08-23 10:48:05
지속 시간
5분 7초
위치
Ashburn, USA - IP 5.161.75.7
저는 셀프 호스팅 환경이며, Discourse는 HestiaCP의 리버스 프록시를 통해 구성되어 있습니다.
log.txt (55.8 KB) 여기에 로그 첨부했습니다.
이 429 에러가 모든 사용자에게 발생한 것인지, 아니면 일부 사용자만 해당되는 것인지 알고 싶습니다.
Docker로 표준 설치했으며, 포트는 80만 사용하고 워커는 4개입니다.
RAM 8GB, 코어 8개 환경입니다.
업데이트: 제 PC에서 20~30개의 게시물을 열람하다가 429 에러가 발생했고, 다른 네트워크를 사용하는 제 스마트폰에서는 정상적으로 작동했습니다. 이는 429 에러가 모든 방문자가 아닌 특정 클라이언트에게만 발생한다는 것을 확인시켜 줍니다.
제가 잘못 안 거라면, 네, 요청을 연속해서 보내는 클라이언트에 영향을 미칠 뿐입니다.
aLinux
(aLinux )
8월 23, 2026, 2:28오후
3
무시해야 할까요, 아니면 한도를 늘리기 위해 무언가를 변경해야 할까요?
pfaffman
(Jay Pfaffman)
8월 24, 2026, 1:58오후
5
이는 아마도 모든 요청이 동일한 IP에서 온 것처럼 보이며, 많은 사용자가 429 오류를 겪고 있다는 뜻일 것입니다. admin/users 페이지로 가서 본인 및 다른 사용자의 IP 주소를 확인해 보세요. 두 주소가 동일하다면, 실제 IP가 Discourse로 전달되도록 설정을 구성해야 합니다.
aLinux
(aLinux )
8월 24, 2026, 3:25오후
6
방금 확인해봤는데 다른 사용자들과 내장 IP가 같은 걸로 나와요!
이걸 어떻게 해결할 수 있을까요?
aLinux
(aLinux )
8월 24, 2026, 3:41오후
8
네, 하지만 문제는 모든 사용자가 동일한 IP를 사용한다는 거예요.
app.yml에 아래 내용을 추가했고, 지금 테스트 중입니다.
run:
replace:
filename: /etc/nginx/conf.d/discourse.conf
from: “server {”
to: |
server {
set_real_ip_from 192.168.1.250;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
exec: echo “Beginning of custom commands”
exec: echo “End of custom commands”
방금 데스크톱과 모바일 폰에서 테스트해봤습니다.
올바른 IP 주소를 얻고 있습니다
pfaffman
(Jay Pfaffman)
8월 24, 2026, 4:04오후
9
Cloudflare를 사용 중이시라면 Cloudflare 템플릿을 사용해야 합니다. 해당 주제에 대한 공식적인 토픽을 찾기가 불가능한 것 같으니, https://ask.discourse.com/ 을 시도해 보세요. 저는 AI가 생성한 메시지로 어떻게 해야 하는지는 알 수 있었지만, 그 논의가 어디에 있는지는 찾을 수 없었습니다. AI는 해결책을 찾아내는데 검색은 못 찾는다는 점이 슬프네요.
aLinux
(aLinux )
8월 24, 2026, 4:06오후
10
음.. 네, ChatGPT한테 물어보고 백업도 먼저 해뒀다가 테스트를 해봤어요. 지금까지는 괜찮네요
pfaffman
(Jay Pfaffman)
8월 24, 2026, 4:19오후
11
저는 일반 AI 대신 https://ask.discourse.com/ 를 항상 사용하겠습니다. (단, 적극적으로 코딩을 하고 있고 AI가 Discourse 코드에 접근할 수 있는 경우를 제외합니다.)
Cloudflare를 Discourse와 함께 사용한다면 해당 설정을 추가해야 합니다. @pfaffman이 언급했던 템플릿이 바로 그것이었나요?
설치 환경에 따라 달라질 것 같습니다.
저는 다음과 같이 설정되어 있습니다.
┌─────────────────────────┐
│ Cloudflare │
│ WAF / CDN / DDoS / SSL │
└────────────┬────────────┘
│
실제 클라이언트 IP
│
▼
┌─────────────────────────┐
│ CentminMod Nginx │
│ │
│ cloudflare.conf │
│ 실제 IP 복원 │
└────────────┬────────────┘
│
X-Forwarded-For
= 실제 클라이언트 IP
│
▼
┌─────────────────────────┐
│ Discourse Docker │
│ │
│ 신뢰할 수 있는 프록시 │
│ 172.16.0.0/12 │
└─────────────────────────┘
템플릿을 사용하면 IP가 외부로 노출된 IP가 아니라 Docker IP로 되돌아갑니다. 저는 nginx에서 이를 전달하고 있습니다.