워드프레스 사이트에서 ERR_TIMED_OUT 에러는 PHP 메모리 한도 초과나 PHP-FPM 프로세스 부족과 같은 서버 리소스 문제, 플러그인 충돌·무한 루프·WP-Cron 과부하 등 워드프레스 관련 문제, max_execution_time 또는 fastcgi_read_timeout 설정값 부족, Cloudflare 524 오류·방화벽 차단·DNS 지연 등 네트워크 및 인프라 문제, 외부 API나 SMTP 메일 발송 대기로 인한 응답 지연(블로킹), 그리고 Cache Stampede나 CDN 오리진 설정 오류 등 다양한 원인에 의해 발생합니다.
이 워드프레스 블로그에 접속할 때 일시적으로 ERR_TIMED_OUT 오류가 표시되어 원인을 살펴보니, 서버에 호스팅된 사이트 중 하나에 특정 IP가 비정상적으로 과도한 접속을 시도하면서 서버 전체에 트래픽 과부하가 발생한 것을 확인했습니다. 서버를 재시작하고 문제의 IP 주소를 차단하자 오류가 해결되었으며, 재발 방지를 위해 Wordfence 보안 플러그인을 설치하고 속도 제한(Rate Limiting) 설정을 적용했습니다.

서버 과부하로 인한 워드프레스 ERR_TIMED_OUT 오류 해결
ERR_TIMED_OUT 오류
ERR_TIMED_OUT은 브라우저가 웹사이트 서버로 요청을 보내고 서버가 응답하기까지 시간이 너무 오래 걸려 연결 시간이 초과된 것을 의미합니다.
이 오류는 다음과 같은 다양한 원인으로 인해 발생합니다.
- 인터넷 연결 불안정 또는 지연
- 웹 서버 과부하 또는 다운
- 방화벽·백신·VPN·프록시 간섭
- DNS 설정 오류 또는 DNS 캐시 문제
- 브라우저 확장 프로그램 충돌
- 손상된 캐시·쿠키 데이터
- 네트워크 장치(공유기·모뎀) 문제
- 브라우저 플러그인 충돌
- 플러그인 충돌 또는 무한 루프
- 윈도우 시스템 서비스/설정 문제
- 네트워크 정책으로 인한 사이트 차단
서버 과부하로 인한 ERR_TIMED_OUT 오류
최근 이 워드프레스 블로그에 접속하려고 시도할 때 일시적으로 다음과 같은 오류가 발생했습니다.

이 블로그는 클라우드웨이즈(Cloudways)에서 호스팅되고 있는데, 서버 관리 페이지 » Monitoring을 체크하니 CPU 사용량이 갑자기 100%로 폭증한 것을 확인할 수 있었습니다.

우선 서버를 재가동(Restart)하니 문제가 해결되고 CPU 사용량도 정상화되었습니다.
이것은 임시적인 조치일 뿐이라서 정확한 원인을 파악하여 제대로 대응하고 싶어서 라이브 채팅으로 연락하여 CPU 사용량 폭주의 원인에 대해 물어보았습니다. (질문을 한국어로 하면 한국어로, 영어로 하면 영어로 답변을 줍니다. 한국어로 질문하면 아마 AI가 자동으로 번역하여 영어로 전달하고, 영어 답변을 마찬가지로 한국어로 자동 번역하는 것 같습니다.)

클라우드웨이즈 담당자에 의하면 CPU 급증(Spike) 현상은 특정 IP의 비정상적인 동적 요청 폭주와 서버의 무거운 처리 과정이 맞물리면서 발생했다고 습니다.
서버 내에 10개가 넘는 사이트가 있는데, 그 중 하나가 수시로 문제를 일으키고 있습니다. 여러 가지 조치로 어느 정도 최적화시켰지만 여전히 문제가 되곤 합니다. 이번에는 49.247.9.21이라는 IP 하나가 해당 애플리케이션(워드프레스 사이트)에 단시간에 엄청난 수의 요청을 보내면서 서버 다운으로 이어졌습니다.
우선 CPU 폭증의 원인이 되었던 IP를 차단했습니다. 이러한 조치는 단기적으로 효과가 있지만, 보다 원론적인 대책이 필요한 것 같습니다.
- 잠재적 위험: 악의적인 봇이나 스크레이퍼(데이터 수집기)들은 보통 IP를 바꾸어가며 공격합니다. 내일 다른 IP로 똑같은 공격이 들어오면 다시 CPU가 치솟을 수 있습니다.
- 보완 대책: IP 차단과 더불어 아래와 같은 구조적 방어 체계를 구축해야 합니다. (클라우드웨이즈 담당자 권장 사항)
- Cloudflare WAF 설정: 해당 IP 차단은 물론, /wp-json/, xmlrpc.php 등 봇들이 자주 노리는 동적 엔드포인트에 대한 속도 제한(Rate Limiting)이나 챌린지(Cloudflare 관리형 챌린지)를 걸어두어야 합니다.
- 과도한 404 요청 방어: 존재하지 않는 페이지를 계속 찔러보는 행위 자체도 워드프레스가 404 페이지를 동적으로 생성하느라 CPU를 많이 씁니다. Cloudflare에서 404 요청을 많이 유발하는 자들을 자동으로 차단하거나 제한하는 규칙을 고려해 보세요.
해당 사이트는 클라우드플레어와 연동 중이었지만 '속도 제한' 조치를 취하고 있지 않아서 해당 공격을 막지 못한 것 같습니다.
'속도 제한' 설정을 할 수 있는 방법으로 Wordfence 플러그인을 이용하는 것도 가능하다는 것을 알게 되어 워드펜스 플러그인을 설치했습니다.
최종적으로 Wordfence의 속도 제한(Rate Limiting) 설정을 다음과 비슷하게 설정했습니다.😄

상기 설정에 대하여 제미나이는 다음과 같이 분석하네요:
현재 설정은 "가장 보수적이고 안전한 SEO 친화적 세팅"입니다. 하지만 이번에 겪으신 '악성 봇으로 인한 CPU 급증 문제'를 해결하는 관점에서는 장단점이 뚜렷합니다.
- 장점 (안전성): 진짜 사람 사용자가 링크를 마구 클릭하거나, 정상 크롤러가 과도하게 접근할 때 실수로 '영구 차단'되는 불상사를 100% 예방합니다. 오진으로 인한 방문자 이탈이 전혀 없습니다.
- 단점 (CPU 방어의 한계): 제한 모드는 악성 봇이 들이닥쳤을 때 요청을 완전히 쳐내는 것이 아니라, 워드프레스 내부(PHP)에서 "조금만 천천히 요청해라"라며 대기 전술을 씁니다. 만약 네이버 클라우드 서버 같은 곳에서 프로그램(봇)으로 초당 수십 번씩 동적 쿼리를 들이부으면, 서버는 그 대기 요청들을 프로세스에 물고 있느라 CPU와 RAM을 계속 소모하게 됩니다.
만약 공격이 들어와서 효율적으로 대응하지 못한다면 제미나이가 권장하는 옵션을 적용해볼 생각입니다.
- 크롤러의 페이지를 찾을 수 없음(404) 오류... ➔ 그리고나서를 차단 (Block)으로 변경
- 사람의 페이지를 찾을 수 없음(404) 오류... ➔ 그리고나서를 차단 (Block)으로 변경
워드펜스 플러그인은 사이트 속도에 부정적인 영향을 미칠 수 있기 때문에 설치하는 것을 망설였지만 이번 사태를 겪으면서 문제가 되는 사이트와 이 블로그에 Wordfence를 설치하여 속도 제한 설정을 지정했습니다. 시간을 두고 효과가 있는지 모니터링할 생각입니다.
악성 IP나 스팸 봇(SEO 봇) 때문에 CPU 급증 현상이 자주 발생한다면 다음 조치도 도움이 될 것입니다. 아래와 조치와 함께 Wordfence를 설치하여 속도 제한 설정을 하면 보다 효과적으로 대처가 가능하지 않을까 생각됩니다.
댓글 남기기