-

프록시 켠 뒤 발생하는 522와 502 오류의 원인과 해결 DNS 설정을 마치고 구름을 오렌지로 바꿨습니다. 그런데 사이트를 열어 보니 Cloudflare 로고가 박힌 오류 페이지에 Error 522라고 적혀 있습니다. 회색으로 되돌리면 잘 열립니다. 이 상황이면 원인은 거의 정해져 있습니다.
안녕하세요, 코딩하는 안다형입니다. 이 글에서는 프록시를 켠 뒤 나타나는 522와 502 오류를 원인별로 정리했습니다. 대부분은 서버 방화벽 한 줄로 해결되니 순서대로 확인해 보세요.
3줄 요약
1. 522는 Cloudflare가 원본 서버에 연결하지 못한 상태입니다. 사이트 문제가 아니라 연결 문제입니다.
2. 가장 흔한 원인은 서버 방화벽이 Cloudflare IP를 막고 있는 것입니다.
3. 회색 구름으로 바꿨을 때 잘 열린다면 방화벽이 범인일 확률이 매우 높습니다.
522 오류 잡는 순서: 원본 확인, 방화벽, 포트 확인, 서버 부하 522가 정확히 무슨 뜻인가
Cloudflare 오류 페이지는 문제가 어디서 났는지를 그림으로 알려 줍니다. 화면에 세 칸이 나오는데, Browser / Cloudflare / Host 순서입니다. 522에서는 앞의 두 칸이 초록색이고 마지막 Host 칸만 빨간색입니다.
읽는 방법은 이렇습니다. 방문자는 Cloudflare까지 잘 도착했고, Cloudflare도 정상 동작합니다. 그런데 Cloudflare가 내 서버에 연결을 시도했더니 응답이 없었다는 뜻입니다. 즉 문제는 Cloudflare가 아니라 내 서버 쪽에 있습니다.
그러니 Cloudflare 설정을 뒤지는 대신 서버부터 보는 게 순서입니다.
1단계. 원본 서버가 살아 있는지 확인
먼저 서버 자체가 정상인지 가릅니다. 가장 빠른 방법은 해당 레코드를 회색 구름으로 바꿔 접속해 보는 것입니다.
- 회색으로 바꾸니 잘 열린다: 서버는 정상입니다. Cloudflare 경유 경로가 막힌 것이므로 2단계로 갑니다. 이 경우가 대부분입니다.
- 회색으로도 안 열린다: 서버나 웹서버 프로세스 자체의 문제입니다. Cloudflare와 무관하니 서버 상태를 먼저 복구하세요.
회색으로 바꾸는 게 부담스럽다면, 서버에 접속해 웹서버가 도는지 직접 확인해도 됩니다.
sudo systemctl status nginx sudo ss -lntp | grep -E ':(80|443)'두 번째 명령에서 80번과 443번 포트가 목록에 없다면, 웹서버가 그 포트를 듣고 있지 않다는 뜻입니다.
2단계. 방화벽에 Cloudflare IP 허용하기
가장 흔한 원인입니다. 프록시를 켜면 접속이 방문자 IP가 아니라 Cloudflare IP에서 들어옵니다. 방화벽이 이 낯선 IP들을 차단하면 Cloudflare는 연결에 실패하고, 결과가 522로 나타납니다.
허용할 IP 목록은 어디서 얻나
Cloudflare가 공식 페이지에서 IPv4와 IPv6 대역 목록을 공개합니다. 이 목록은 가끔 갱신되므로 링크로 즐겨찾기해 두고, 설정할 때 그 값을 그대로 쓰세요. 임의로 IP를 추측해 넣으면 안 됩니다.
리눅스 방화벽에서 허용하기
ufw를 쓴다면 대역별로 이렇게 추가합니다. 실제로는 공개된 대역 전부를 반복해 넣어야 합니다.
sudo ufw allow from 대역/마스크 to any port 80 proto tcp sudo ufw allow from 대역/마스크 to any port 443 proto tcp sudo ufw reload대역이 여러 개라 손으로 넣기 번잡하다면, 목록을 받아와 반복 처리하는 스크립트를 쓰는 편이 실수가 적습니다. 여기서 한 가지 팁이 있습니다. Cloudflare IP만 허용하고 나머지는 차단해 두면, 522 해결과 동시에 원본 서버 보호까지 완성됩니다.
방화벽이 서버 밖에 있는 경우
서버 안의 방화벽만 문제가 아닙니다. 아래도 함께 확인하세요.
- 호스팅 관리 패널의 방화벽: 업체가 제공하는 차단 기능이 별도로 동작합니다.
- 클라우드 제공자의 보안 그룹: 인스턴스 앞단에서 트래픽을 걸러냅니다.
- 보안 플러그인과 침입 차단 도구: 짧은 시간에 많은 요청이 들어오는 Cloudflare IP를 공격으로 오인해 자동 차단하는 경우가 흔합니다. 차단 로그를 확인하고 Cloudflare 대역을 예외로 등록하세요.
특히 마지막 항목은 처음엔 잘 되다가 며칠 뒤 갑자기 522가 나기 시작하는 패턴으로 나타납니다. 자동 차단 도구가 뒤늦게 Cloudflare IP를 밴 한 경우입니다.
3단계. 포트가 열려 있는지 확인
Cloudflare 프록시는 표준 웹 포트로만 원본에 접속합니다. 기본은 HTTP 80번과 HTTPS 443번입니다.
- 443번이 닫혀 있는데 SSL 모드가 Full로 되어 있다면 연결이 실패합니다. 웹서버가 443번을 듣고 있는지 확인하세요.
- 비표준 포트(8000번 등)로만 서비스한다면 프록시를 거칠 수 없습니다. 웹서버에서 80번과 443번으로 받아 내부 포트로 넘기도록 구성하세요.
외부에서 포트가 실제로 열렸는지 확인하려면, 다른 서버나 온라인 포트 점검 도구로 원본 IP의 443번을 찔러 보면 됩니다. Cloudflare를 우회해 원본에 직접 요청하는 방법도 있습니다.
curl -I -H "Host: 내도메인.com" http://원본IP주소/여기서 정상 응답이 오면 서버와 포트는 문제없고, 남은 원인은 방화벽뿐입니다.
4단계. 서버 부하와 응답 지연
방화벽도 정상인데 522가 간헐적으로 뜬다면 부하 문제입니다. 서버가 바빠서 새 연결을 제때 받지 못하는 상황입니다.
- 메모리 부족: 스왑까지 꽉 차면 연결 수락이 지연됩니다.
- PHP 프로세스 부족: 동시 요청이 한계를 넘으면 대기가 길어집니다.
- 데이터베이스 병목: 느린 쿼리 하나가 전체를 잡아먹습니다.
- keepalive 설정: 연결 유지 관련 설정이 지나치게 짧으면 재연결이 잦아져 실패 확률이 올라갑니다.
이 경우엔 서버 로그를 보는 게 가장 빠릅니다. Nginx라면 error 로그, Apache라면 error_log를 확인하세요. 아무 기록이 없다면 요청이 서버에 도달조차 못 한 것이니 다시 방화벽으로 돌아가야 합니다.

Cloudflare 오류 코드별 원인과 확인할 곳 정리표 오류 코드별 원인과 조치
Cloudflare 오류 중 52x로 시작하는 것은 원본 서버 쪽 문제를 뜻합니다. 숫자만 봐도 원인이 좁혀집니다.
- 520: 원본이 예상 못한 응답을 보냈습니다. 서버 로그를 확인하세요.
- 521: 원본이 연결을 거부했습니다. 웹서버가 꺼져 있거나 포트가 닫힌 상태입니다.
- 522: 연결 시간이 초과됐습니다. 방화벽과 IP 허용을 확인하세요.
- 523: 원본에 도달할 수 없습니다. DNS 레코드의 IP 값이 틀렸을 가능성이 큽니다.
- 524: 연결은 됐지만 응답이 너무 오래 걸렸습니다. 느린 스크립트나 쿼리를 손봐야 합니다.
- 525와 526: SSL 연결이나 인증서 검증에 실패했습니다. 암호화 모드와 원본 인증서를 확인하세요.
524는 조치가 다릅니다
524는 방화벽 문제가 아닙니다. Cloudflare는 원본 응답을 정해진 시간까지만 기다립니다. 무료와 일반 플랜에서는 대략 100초 수준이고, 그 안에 응답이 오지 않으면 524를 냅니다.
대용량 백업 스크립트나 무거운 통계 페이지에서 자주 나옵니다. 해결 방향은 두 가지입니다. 오래 걸리는 작업을 백그라운드로 돌리고 즉시 응답을 보내는 구조로 바꾸거나, 해당 경로만 회색 구름으로 우회하는 것입니다.
502와 504는 조금 다릅니다
502와 504는 Cloudflare 고유 코드가 아니라 일반적인 게이트웨이 오류입니다. 그래서 어디서 발생했는지를 먼저 구분해야 합니다.
- 오류 화면에 Cloudflare 로고가 없다면: 내 서버의 웹서버가 낸 오류입니다. Nginx와 PHP 사이 연결 문제가 흔합니다. PHP 프로세스가 죽었거나 소켓 경로가 틀린 경우입니다.
- Cloudflare 로고가 있다면: Cloudflare가 원본에서 비정상 응답을 받은 것입니다. 원본 로그를 확인하세요.
둘 다 서버 로그가 답을 알려 줍니다. 502가 났을 때 서버 로그에 아무 기록이 없다면 프록시 경로 문제이고, 기록이 있다면 그 메시지를 그대로 따라가면 됩니다.
이건 하지 마세요
- 522가 뜬다고 Cloudflare 설정을 이것저것 바꾸기: 원인은 서버 쪽입니다. 방화벽부터 보세요.
- 회색으로 되돌려 놓고 방치: 문제는 사라지지만 캐시와 보안도 함께 사라집니다. 원인을 찾아 오렌지로 돌아가세요.
- 모든 IP를 전면 허용해 해결: 522는 없어지지만 서버가 무방비가 됩니다. Cloudflare 대역만 허용하세요.
- 보안 플러그인의 자동 차단을 그대로 두기: 며칠 뒤 다시 522가 납니다. Cloudflare 대역을 예외로 등록하세요.
- 524에 방화벽 설정을 계속 손보기: 524는 응답이 느린 문제입니다. 방화벽과 무관합니다.
자주 묻는 질문
Q. 회색으로 바꾸면 잘 되는데 오렌지로만 522가 납니다.
방화벽이 원인일 확률이 매우 높습니다. Cloudflare IP 대역을 80번과 443번 포트에 허용하세요. 호스팅 패널의 방화벽과 보안 플러그인도 함께 확인해야 합니다.
Q. 처음엔 잘 됐는데 며칠 뒤부터 522가 납니다.
침입 차단 도구가 Cloudflare IP를 공격으로 오인해 자동 차단한 경우가 많습니다. 차단 목록을 확인하고 Cloudflare 대역을 영구 예외로 등록하세요.
Q. 특정 페이지에서만 오류가 납니다.
그 페이지가 느린 것입니다. 오류 코드가 524라면 응답 시간 초과입니다. 해당 처리를 백그라운드로 옮기거나 쿼리를 최적화하세요.
Q. 어느 대역을 허용해야 하는지 어디서 확인하나요?
Cloudflare 공식 IP 목록 페이지에 IPv4와 IPv6 대역이 정리돼 있습니다. 목록이 갱신될 수 있으니 블로그에 적힌 옛 IP를 복사하지 말고 공식 페이지 값을 쓰세요.
Q. 서버 로그에 아무 기록도 없습니다.
요청이 서버까지 도달하지 못했다는 뜻입니다. 웹서버 앞단에서 막힌 것이므로 방화벽, 보안 그룹, 포트 순서로 확인하세요.
Q. Cloudflare를 떼면 해결되나요?
증상은 사라지지만 원인은 남습니다. 게다가 원본 IP가 다시 노출되고 캐시와 방어 기능도 없어집니다. 방화벽 설정 한 번으로 끝나는 문제이니 그쪽을 해결하는 편이 낫습니다.
마무리
정리하면 회색으로 바꿔 서버 확인 → 방화벽에 Cloudflare IP 허용 → 포트 확인 → 부하와 응답 시간 점검 순서입니다.
522는 겁나는 화면이지만 원인은 단순합니다. Cloudflare가 내 서버 문을 두드렸는데 문이 잠겨 있었다는 뜻입니다. 열어 주기만 하면 됩니다. 그리고 그 김에 Cloudflare 외의 접속을 차단해 두면 보안까지 챙길 수 있습니다.
함께 보면 좋은 글
반응형'클라우드플레어' 카테고리의 다른 글
Full(Strict) 안전하게 적용하기 + Origin 인증서 발급 (0) 2026.09.06 SSL/TLS 암호화 모드 4가지 (Off / Flexible / Full / Full Strict) (0) 2026.09.06 프록시 켜고 끄기, 레코드별로 무엇을 선택해야 하나 (0) 2026.09.05 오렌지 구름과 회색 구름의 차이 (프록시 모드 원리) (0) 2026.09.05 티스토리 개인 도메인을 Cloudflare DNS에 연결하기 (2026 최신) (0) 2026.09.04 댓글
