프록시 502 Bad Gateway 오류: 원인 제공자 확인하기

업데이트:

502 Bad Gateway는 중간 서버(사용 중인 프록시 또는 웹사이트 자체 프론트엔드 서버)가 요청을 전달했으나 유효한 응답을 받지 못했음을 의미합니다. 오류 코드는 동일하지만 원인은 완전히 다를 수 있으므로, 문제를 해결하기 전에 먼저 502 오류를 반환하는 주체가 누구인지 파악해야 합니다.

타인과 공유되지 않는 전용 프라이빗 IP

프록시에서 발생하는 502 오류의 형태

테스트 프록시가 502를 반환하도록 설정하고 응답을 기록했습니다(203.0.113.10:8080 및 user123:pass456으로 대체 표기):

  • HTTPS 사이트: curl -x http://user123:[email protected]:8080 https://example.com 실행 시 curl: (56) CONNECT tunnel failed, response 502가 출력됩니다.
  • 일반 HTTP 사이트: curl이 502 상태 코드를 수신합니다.
  • 해당 프록시를 통해 HTTPS 페이지를 로드하는 Chrome은 ERR_TUNNEL_CONNECTION_FAILED를 보고하며 502 페이지를 전혀 표시하지 않습니다.
  • 프록시 체커에는 HTTP 502로 표시되며, 다른 코드도 동일하게 HTTP <code> 형식으로 나타납니다.

핵심 구분법: HTTPS 사이트에서 나타나는 502 페이지

HTTPS 사이트의 경우 프록시는 터널을 열어줄 뿐이며, 암호화된 연결 내부에 자체 페이지를 삽입할 수 없습니다. 프록시가 연결을 거부하면 Chrome은 ERR_TUNNEL_CONNECTION_FAILED를 보고합니다. 따라서 https:// 주소에서 온전한 "502 Bad Gateway" 페이지가 렌더링된다면, 이는 프록시가 아니라 웹사이트 서버에서 발생했을 가능성이 거의 확실합니다.

프록시를 끄고 동일한 페이지를 로드하여 확인해 보세요. 여전히 502가 표시된다면 웹사이트 자체에 문제가 있는 것이므로, 기다리거나 사이트 관리자에게 문의하는 것 외에는 방법이 없습니다.

프록시가 실제로 502를 보내는 경우

  • 대상 서버가 프록시에 응답하지 않음: 사이트가 다운되었거나, 과부하 상태이거나, 프록시 IP 대역의 연결을 거부하고 있습니다.
  • 잘못 입력되었거나 확인할 수 없는 도메인: 프록시가 사이트 주소를 찾을 수 없어 요청을 전달할 대상이 없습니다.
  • 대상 포트가 닫혀 있음: 사이트에서 서비스하지 않는 포트로 요청이 전송되었습니다.
  • 프록시 측의 일시적인 장애: 비교적 드문 경우로, 특정 프록시에서는 모든 사이트가 502를 반환하지만 다른 프록시에서는 정상 작동할 때 알 수 있습니다.

환경별 대처 방법

  • Chrome 또는 안티디텍트 프로필: 동일한 프로필에서 다른 대형 사이트를 열어보세요. 정상적으로 로드된다면 프록시는 문제없으며 기존 사이트에 문제가 있는 것입니다.
  • 스마트폰: Wi-Fi 프록시 설정을 끄고 모바일 데이터로 페이지를 접속해 사이트 자체가 다운된 것인지 확인해 보세요.
  • curl: -v 옵션을 추가해 CONNECT 직후 502 응답이 오는지 확인한 뒤, 다른 도메인으로 다시 테스트하여 문제 범위를 좁혀보세요.
  • Python requests: HTTP 페이지는 response.status_code == 502 여부를 확인하고 잠시 대기 후 재시도하세요. HTTPS 페이지의 경우 터널링 실패 시 requests.exceptions.ProxyError가 발생합니다. 사이트에 과도한 요청을 연속으로 보내지 말고 재시도 간격을 충분히 두세요.

단계별 안내

  1. 1

    502가 표시되는 위치 확인

    https 주소에 나타나는 502 페이지는 웹사이트 문제를 가리킵니다. Chrome의 터널 오류는 프록시 경로의 문제를 나타냅니다.

  2. 2

    프록시 비활성화 후 새로고침

    프록시 없이도 502가 발생한다면 웹사이트 자체에 오류가 있는 것입니다.

  3. 3

    동일한 프록시로 다른 사이트 접속

    다른 사이트가 정상 작동한다면 프록시에는 문제가 없으며, 원래 접속하려던 사이트만 연결을 거부하거나 다운된 상태입니다.

  4. 4

    체커 도구로 프록시 확인

    프록시 체커에 프록시 정보를 입력하세요. 모든 사이트에서 HTTP 502가 반환된다면 해당 결과와 함께 문의 티켓을 접수해 주세요.

자주 묻는 질문

502 오류는 프록시 사용 기간이 만료되었음을 의미하나요?

대체로 그렇지 않습니다. 만료되었거나 중지된 프록시는 대개 연결 실패나 타임아웃을 유발합니다. 자세한 내용은 프록시 타임아웃 문서를 참조하세요.

프록시 사용 시 유독 특정 웹사이트에서만 502 오류가 발생하는 이유는 무엇인가요?

해당 사이트에 장애가 있거나 해당 프록시 IP의 연결 요청에 응답하지 않는 상태일 수 있습니다. 잠시 후 다시 시도하거나 다른 국가의 IP를 사용해 보세요.

502와 504 오류의 차이점은 무엇인가요?

502는 유효하지 않은 응답을 받았거나 응답을 아예 받지 못했음을 의미하며, 504는 중간 서버의 대기 시간이 초과되었음을 의미합니다. 체커 도구에서는 두 오류 모두 HTTP <code> 형식으로 표시됩니다.

스크래퍼 실행 중 간헐적으로 502 오류가 발생합니다. 프록시를 교체해야 할까요?

간헐적인 502 오류는 대개 대상 서버의 과부하로 인해 발생합니다. 프록시를 교체하기 전에 요청 속도를 늦추고 재시도 간격을 늘려보세요. 자세한 내용은 웹 스크래핑용 프록시를 참조하세요.

타인과 공유되지 않는 전용 프라이빗 IP

VinaProxy 프라이빗 프록시를 사용하면 다른 사용자의 활동으로 인해 IP가 차단되는 문제를 방지할 수 있습니다.

요금제 보기

관련 글

프록시 오류
프록시 사용 시 ERR_TUNNEL_CONNECTION_FAILED 오류 해결 방법
ERR_TUNNEL_CONNECTION_FAILED는 Chrome이 프록시에 연결되었으나 HTTPS 터널이 열리지 않았음을 의미합니다. CONNECT 응답 코드를 확인하고 Chrome, Puppeteer, Android에서 이를 해결하는 방법을 확인하세요.
프록시 오류
프록시 타임아웃 오류: 연결 지연 후 실패하는 현상
프록시 타임아웃은 대기 시간 내에 응답이 도착하지 않았음을 의미합니다. curl (28)과 ERR_TIMED_OUT의 차이를 파악하고, Python 타임아웃을 조정하며, 트래픽 차단 지점을 확인해 보세요.
무료 도구
프록시 체커: 온라인으로 프록시 확인하기
무료 프록시 체커: ip:port:user:pass 형식으로 최대 100개를 붙여넣고 작동 여부, 출구 IP, 지연 시간을 온라인으로 확인하세요. 오류별 의미도 알려 드립니다.
도구별 프록시 설정
cURL에서 프록시를 사용하는 방법 (명령줄 구문 및 디버깅)
Linux, macOS, Windows에서 인증된 HTTP(S) 프록시(-x http://user:pass@ip:port 및 -U)와 함께 curl을 사용하는 완벽한 방법.
플랫폼별 프록시
웹 스크래핑용 프록시: 24/7 크롤러를 위한 무제한 전용 IPv4 & ISP 풀
Python, Playwright, Selenium, Scrapy용 초고속 HTTP(S) 전용 IPv4 및 고정 ISP 프록시. 월간 대역폭 완전 무제한 제공.
도구별 프록시 설정
Google Chrome에서 프록시를 설정하는 방법
Chrome 확장 프로그램, --proxy-server 명령어 옵션 또는 독립 프로필을 사용하여 전체 OS의 IP를 바꾸지 않고 Google Chrome 전용 VinaProxy HTTP(S) 프록시를 설정합니다.
도구별 프록시 설정
Windows 10 및 Windows 11에서 프록시 구성하는 방법
WinINET 시스템 설정, PowerShell 환경 변수 또는 netsh winhttp를 사용하여 Windows 10 및 Windows 11에서 VinaProxy HTTP(S) 프록시를 구성합니다.
도구별 프록시 설정
GenLogin 프록시 설정 방법 (단일 프로필 및 대량 가져오기)
GenLogin 안티디텍트 브라우저에서 HTTP ip:port:user:pass 프록시 설정하기. 타임존, WebRTC 동기화 및 연결 오류 해결.