KYC 없이 — 신분증, 셀카, 문서 없이. 암호화폐로 결제: BTC, USDT, USDC, ETH, SOL, LTC
언어: 한국어
시작하기

프록시 오류 참조 · HTTP 상태 코드

프록시 경유 502 Bad Gateway: 의미와 해결 방법

HTTP 상태 코드 (5xx, 서버 오류): 각 도구에서 정확한 메시지, 가능한 원인들의 순서, 그리고 효과적인 해결 방법.

마지막 업데이트: · 4 분 읽기

빠른 답변

프록시에서 502 Bad Gateway는 무엇을 의미하나요?

502 Bad Gateway는 게이트웨이나 프록시가 체인 내 다음 서버로부터 잘못된 응답이나 응답 없음(무응답)을 받았음을 뜻합니다. CrawlRelay 주거용 프록시 사용 시 502는 보통 출구 연결 실패 또는 요청 중 대상 서버 장애입니다. 새 연결로 한 번 재시도하세요. 특정 사이트에서만 502가 계속 나오면 사이트 문제, 모든 사이트에서 발생하면 설정 문제입니다.

502 Bad Gateway 한눈에 보기

오류502 Bad Gateway
유형HTTP 상태 코드 (5xx, 서버 오류)
전송 주체대상 앞의 프록시 게이트웨이 또는 리버스 프록시
정의 위치RFC 9110, section 15.6.3
다시 시도할까요?예, 새 연결 또는 세션 시
먼저 확인하세요새 IP에서 한 번 재시도; 지속되면 프록시 없이 대상 테스트

502 Bad Gateway가 무엇을 의미하나요?

RFC 9110은 502를 게이트웨이가 뒤 서버 응답이 나쁨을 알리는 방식이라 정의합니다. 스크래핑 체인에는 적어도 두 개의 게이트웨이(프록시, 사이트 앞 CDN 또는 로드 밸런서)가 있으며, 어느 쪽에서나 502가 발생할 수 있고, 응답 본문에서 원인 게이트웨이를 알 수 있습니다.

주거용 네트워크는 출구 연결이 가정용이며 요청 도중 연결이 끊길 수 있어, 게이트웨이는 유효한 응답이 없을 수 있습니다.

Python, curl, Node.js, 브라우저에서 a 502는 어떻게 나타나나요?

같은 실패가 도구마다 다르게 출력됩니다. 로그에서 검색할 메시지들:

  • Python requests: status_code == 502, HTTPS 대상은 ProxyError('Unable to connect to proxy', OSError('Tunnel connection failed: 502 Bad Gateway')) 사용
  • curl: curl: (56) CONNECT tunnel failed, response 502
  • 브라우저: HTTPS는 net::ERR_TUNNEL_CONNECTION_FAILED, HTTP는 일반 오류 페이지
  • Scrapy: 502를 기본 재시도 대상(RETRY_HTTP_CODES)에 포함

a 502의 원인은 무엇인가요?

가장 가능성 높은 첫 번째 원인:

  • 출구가 요청 중간에 풀에서 이탈. 주거용 네트워크 일반적 현상
  • **대상이 연결을 닫거나, 다운되거나, 잘못된 응답 반환.
  • **대상 CDN이 자체 오리진 서버에 연결 실패.
  • **출구 쪽 DNS 오류, 예: 호스트명 오타.
  • **대상 범위가 매우 좁아 출구가 제한적이며 반복 실패 발생.

a 502를 단계별로 진단하는 방법은?

  1. 새 연결에서 요청 재시도. 사라지는 502는 연결 중단 때문.
  2. 응답 본문과 헤더 확인: CDN 오류 페이지면 CDN, 간략 프록시 메시지면 게이트웨이 이름 있음.
  3. 프록시 없이 본인 연결에서 대상 테스트.
  4. 타깃 범위를 도시에서 국가 단위로 넓혀 실패율 비교.
curl로 실패한 URL 테스트하기(HTTP 포트, 상세 모드)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

a 502를 어떻게 고치나요?

  • 새 세션 ID로 재시도하거나 세션 없이 요청함으로써 다른 출구 이용.
  • 적절한 타임아웃 설정으로 고장 난 출구를 빠르게 실패 처리.
  • 호스트별 502 기록과 502 급증 호스트 일시 중단: 사이트 다운 가능성 있음.
Python: Retry-After, 지수 백오프 및 지터로 재시도하기
import random
import time

import requests

PROXY = "http://USERNAME:[email protected]:7777"
PROXIES = {"http": PROXY, "https": PROXY}
RETRY_STATUSES = {429, 502, 503, 504}


def fetch(url, attempts=5, timeout=(10, 30)):
    for attempt in range(attempts):
        try:
            r = requests.get(url, proxies=PROXIES, timeout=timeout)
        except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
            r = None  # dropped exit, reset or timeout: a new connection gets a new exit
        if r is not None and r.status_code not in RETRY_STATUSES:
            return r
        retry_after = r.headers.get("Retry-After", "") if r is not None else ""
        if retry_after.isdigit():
            wait = int(retry_after)
        else:
            wait = min(60, 2 ** attempt) + random.uniform(0, 1)
        time.sleep(wait)
    raise RuntimeError("giving up on %s after %d attempts" % (url, attempts))

a 502 이후에 다시 시도해야 하나요?

예, 502는 새 출구에서 제한하여 재시도하세요. 2~3회 정도 지수적 백오프로 충분합니다. 여러 출구에서도 502가 계속되면 대상 서버 문제로, 더 재시도 해도 효과 없습니다. 호스트별 실패율을 기록해 한 사이트가 재시도 큐를 채우지 않게 하세요.

502 Bad Gateway가 CrawlRelay에 어떻게 적용되나요?

CrawlRelay에서는 세션 ID를 버리거나 새로 생성해 보통 다른 주거용 IP 출구를 이용하도록 합니다. 스티키 세션은 한 출구에 묶으므로, 스티키 세션 내 502는 코드에서 세션 종료해야 합니다. 세션 회전 방법은 세션 가이드]에 상세히 설명되어 있습니다.

게이트웨이: gw.crawlrelay.com, 포트 7777 (CONNECT를 통한 HTTP, HTTPS) 및 포트 7778 (SOCKS5). 사용자 이름 형식: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. 관련: 504 Gateway Timeout · Connection reset · 503 Service Unavailable.

502 Bad Gateway: 개발자들이 묻는 질문들

502 오류가 프록시 문제인가요, 아니면 웹사이트 문제인가요?

둘 다 가능합니다. 응답 본문을 확인하세요: CDN 오류 페이지에서 CDN 이름이 나오는데, 이는 웹사이트를 가리킵니다. 시도하는 모든 사이트에서 502 오류가 나타나면 프록시나 설정 문제이고, 특정 사이트에서만 502가 나타나면 그 사이트 문제입니다. 확실히 하려면 프록시 없이 같은 URL을 테스트해 보세요.

왜 502 오류가 주거용 프록시에서 더 자주 발생하나요?

주거용 출구는 실제 가정 연결입니다. 기기가 오프라인이 되거나 네트워크가 변경되거나 신호가 끊기면 요청 도중 502 오류나 연결 재설정이 발생합니다. 좋은 스크레이퍼는 이를 정상으로 보고 새로운 출구에서 재시도하며, 적절한 한도를 둡니다.

502 오류를 줄이기 위해 스티키 세션으로 전환해야 하나요?

아닙니다. 스티키 세션은 한 출구에 머무르므로 해당 출구가 실패하면 세션 내 모든 요청도 실패합니다. 독립적인 페이지에는 회전 연결을 사용하고, 다단계 플로우에만 스티키 세션을 사용하세요. 502 오류 발생 시 스티키 세션을 종료하고 새로 시작하세요.

이 참조에서 다른 프록시 오류들

HTTP 상태 코드

브라우저 및 클라이언트 오류

연결 및 TLS 오류

실패 사례를 다루는 문서가 있는 레지덴셜 프록시들

US$0.50/GB의 레지덴셜 프록시 CrawlRelay개, 트래픽이 절대 만료되지 않음.

US$0.50/GB 부터 · KYC 없이

시작하기