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

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

스크레이핑 시 503 서비스 불가: 의미와 해결법

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

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

빠른 답변

프록시에서 503 Service Unavailable는 무엇을 의미하나요?

503 Service Unavailable은 서버가 과부하, 유지보수 또는 보호 규칙 때문에 현재 요청을 처리할 수 없음을 의미합니다. CrawlRelay 주거용 프록시를 사용할 때는 Retry-After 헤더와 응답 본문을 확인하세요: 유지보수나 과부하로 인한 503은 시간이 지나면 해결되며, 챌린지 페이지는 사이트가 자동화 트래픽을 필터링하므로 속도를 늦춰야 합니다.

503 Service Unavailable 한눈에 보기

오류503 Service Unavailable
유형HTTP 상태 코드 (5xx, 서버 오류)
전송 주체대상 웹사이트, 해당 CDN, 또는 출구가 없을 때 프록시
정의 위치RFC 9110, section 15.6.4 (Retry-After: section 10.2.3)
다시 시도할까요?예, Retry-After 또는 백오프 후에
먼저 확인하세요Retry-After 헤더와 본문이 CDN 챌린지 페이지인지 확인하세요

503 Service Unavailable가 무엇을 의미하나요?

RFC 9110은 503을 일시적 상태로 정의합니다. 서버는 켜져 있지만 현재 이 요청을 처리할 수 없으며, Retry-After으로 언제 다시 시도할지 알릴 수 있습니다.

실제로는 세 가지 상황에서 이 코드를 공유합니다: 실제 과부하나 유지보수 중인 사이트, 자동화 트래픽으로 간주해 챌린지 페이지를 보여주는 CDN, 그리고 매우 좁은 타겟팅에 출구가 없는 프록시 게이트웨이입니다. 본문과 헤더로 상황을 구분하세요.

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

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

  • Python requests / httpx: status_code == 503, 때때로 Retry-After과 함께
  • Scrapy: 기본적으로 재시도 (503은 RETRY_HTTP_CODES 안에 있음)
  • curl: HTTP/2 503, 종종 CDN 이름이 적힌 server: 헤더 포함
  • 브라우저: 유지보수 페이지나 중간 점검 페이지

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

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

  • 대상 사이트의 과부하 또는 유지보수로 Retry-After 자주 표시
  • CDN이 클라이언트 확인용으로 제공하는 챌린지 페이지, 상태 코드 503 또는 403
  • 자신의 크롤러가 사이트 트래픽의 큰 비중일 경우 발생하는 부하
  • 출구가 매칭되지 않는 좁은 타겟팅(예: 작은 도시)
  • 사이트에서 사용하는 CDN 또는 클라우드 지역의 상위 장애

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

  1. Retry-After과 server 헤더를 읽고 본문의 HTML 제목을 보세요.
  2. 같은 국가 내 브라우저에서 페이지를 불러 실제 사용자 시점을 확인하세요.
  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 503를 어떻게 고치나요?

  • Retry-After 지연 또는 지수 백오프를 사용해 기다린 후 재시도
  • 해당 호스트의 부하 줄이기: 병렬 요청 감소, 지연 시간 증가, 캐싱
  • 챌린지 페이지는 속도 중지 신호로 간주: CAPTCHA 해결이나 브라우저 위장 도구 사용 금지; 속도를 줄이고 접근이 필요하면 사이트에 문의하세요.
  • 좁은 도시 타겟팅 시 503 발생하면 타겟팅 범위 확대
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 503 이후에 다시 시도해야 하나요?

503 오류는 참을성 있게 재시도하세요. 가능하다면 Retry-After 시간을 사용하고, 없으면 수초에서 1~2분까지 지수적으로 백오프하세요. 한 호스트가 몇 분 이상 대부분 요청에서 503을 반환하면 전체를 일시 중지하고 나중에 다시 시도하세요. 실제 장애와 챌린지 페이지는 로그에서 별도로 기록하세요.

503 Service Unavailable가 CrawlRelay에 어떻게 적용되나요?

CrawlRelay는 타겟팅에 맞는 주거용 IP를 통해 요청을 전송합니다. 국가 단위 타겟팅은 가장 넓은 출구 집합을 사용하고, 도시 단위는 좁습니다. 503 오류가 도시 필터에서만 나타나면 아무것도 바꾸기 전에 국가 단위로 같은 요청을 테스트하세요.

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

503 Service Unavailable: 개발자들이 묻는 질문들

왜 집에서는 안 나오고 프록시를 통해서만 503이 발생하나요?

사이트가 프록시 트래픽을 다르게 처리하면서 주로 챌린지 페이지를 보여주거나, 타겟팅이 너무 좁아 출구가 적기 때문입니다. 두 경우 모두 응답 본문을 비교하세요. 챌린지 페이지면 속도 늦추기, 짧은 프록시 메시지와 좁은 타겟팅이면 위치 필터 확대가 필요합니다.

503이 차단된 것과 같은 건가요?

아닙니다. 실제 503은 일시적이며 시간이 지나면 해소됩니다. 503과 함께 제공되는 챌린지 페이지는 필터링이며, 보통 속도나 패턴이 자동화되어 보인다는 뜻입니다. 동시성 낮추고 지연을 추가하세요. 사이트가 자동화 접근 자체를 원치 않으면 반드시 그 뜻을 존중하고 API나 라이선스 데이터를 찾아야 합니다.

503을 몇 번 재시도해야 하나요?

1 URL당 3~5회 지수 백오프로 재시도가 적절한 상한입니다. 그 이상이면 단일 URL 재시도보다 호스트 전체를 일시 중지하세요. 문제가 있는 사이트는 재시도해도 빠르게 회복되지 않습니다. 로그에 호스트와 시간을 기록해 두었다가 나중에 재개하세요.

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

HTTP 상태 코드

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

연결 및 TLS 오류

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

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

US$0.50/GB 부터 · KYC 없이

시작하기