Tanpa KYC — tanpa ID, tanpa selfie, tanpa dokumen. Bayar dengan crypto: BTC, USDT, USDC, ETH, SOL, LTC
Bahasa: Bahasa Indonesia
Mulai sekarang

Referensi kesalahan proxy · Kode status HTTP

502 Bad Gateway lewat proxy: artinya dan cara memperbaiki

Kode status HTTP (5xx, kesalahan server): pesan tepat di tiap alat, penyebab yang mungkin secara urut, dan perbaikan yang berhasil.

Terakhir diperbarui: · 5 baca dalam menit

Jawaban cepat

Apa arti 502 Bad Gateway dengan proxy?

502 Bad Gateway berarti gateway atau proxy menerima respons tidak valid, atau tidak sama sekali, dari server berikutnya dalam rantai. Dengan proxy residential CrawlRelay, 502 biasanya berarti sambungan exit atau target gagal di tengah permintaan. Coba ulang sekali dengan koneksi baru. Jika 502 terus terjadi hanya di satu situs, masalah ada pada situs; jika terjadi di semua situs, periksa pengaturan Anda.

502 Bad Gateway sekilas

Kesalahan502 Bad Gateway
TipeKode status HTTP (5xx, kesalahan server)
Dikirim olehGateway proxy atau reverse proxy di depan target
Didefinisikan dalamRFC 9110, section 15.6.3
Mencoba lagi?Ya, pada koneksi atau sesi baru
Periksa pertamaRetry sekali dengan IP baru; jika tetap, uji target tanpa proxy

Apa arti 502 Bad Gateway?

RFC 9110 menjelaskan 502 sebagai cara gateway memberi tahu bahwa server belakangnya merespons buruk. Dalam rantai scraping ada minimal dua gateway: proxy dan, sering kali, CDN atau load balancer di depan website. Salah satu bisa memproduksi 502, dan body respons biasanya memberi tahu mana.

Jaringan residential menambah satu tautan lagi. Exit adalah koneksi rumah tangga nyata, dan perangkat bisa meninggalkan jaringan saat permintaan berlangsung. Gateway lalu tidak memiliki data valid untuk dikirim kembali.

Seperti apa a 502 dalam Python, curl, Node.js, dan browser?

Kegagalan yang sama dicetak berbeda di setiap alat. Ini adalah pesan yang perlu dicari di log Anda:

  • Python requests: status_code == 502, atau ProxyError('Unable to connect to proxy', OSError('Tunnel connection failed: 502 Bad Gateway')) untuk target HTTPS
  • curl: curl: (56) CONNECT tunnel failed, response 502
  • Browser: net::ERR_TUNNEL_CONNECTION_FAILED pada HTTPS, atau halaman error biasa pada HTTP
  • Scrapy: dicoba ulang secara default, karena 502 ada di RETRY_HTTP_CODES

Apa penyebab a 502?

Kemungkinan besar pertama:

  • Exit keluar dari pool selama permintaan, ini biasa pada jaringan residential.
  • Target menutup koneksi, crash, atau mengembalikan data rusak.
  • CDN target gagal menghubungi server asalnya.
  • DNS gagal untuk target di sisi exit, misal salah ketik nama host.
  • Targeting sangat sempit sehingga hanya sedikit exit, membuat kegagalan berulang di set kecil yang sama.

Bagaimana cara mendiagnosis a 502 langkah demi langkah?

  1. Coba ulang permintaan dengan koneksi baru. 502 tunggal yang hilang berarti exit drop.
  2. Baca body dan header respons: halaman error CDN akan menyebutkan CDN; pesan proxy singkat menyebut gateway.
  3. Uji target dari koneksi Anda sendiri tanpa proxy.
  4. Perlebar targeting dari kota ke negara dan bandingkan tingkat kegagalan.
Uji URL yang gagal dengan curl (port HTTP, verbose)
# 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

Bagaimana cara memperbaiki a 502?

  • Retry dengan ID sesi baru atau tanpa sesi, agar permintaan lewat exit lain.
  • Terapkan timeout wajar supaya exit yang mati gagal cepat, tidak menggantung.
  • Catat 502 per host dan jeda host yang angka 502-nya melonjak: kemungkinan sedang down.
Python: coba ulang dengan Retry-After, backoff eksponensial, dan jitter
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))

Haruskah saya mencoba lagi setelah a 502?

Ya, coba ulang 502 tapi dengan exit baru dan batasan. Dua atau tiga kali dengan jeda pendek sudah cukup. 502 yang tetap terjadi di beberapa exit menunjukkan masalah pada target, dan retry lebih banyak tidak akan membantu. Pantau laju per host agar satu situs bermasalah tidak memenuhi antrean retry Anda.

Bagaimana 502 Bad Gateway berlaku untuk CrawlRelay?

Dengan CrawlRelay, lepaskan ID sesi atau buat yang baru agar keluar biasanya lewat IP residential berbeda. Sesi sticky mengikat ke satu exit, jadi 502 dalam sesi sticky harus mengakhiri sesi itu di kode Anda. Panduan sesi menjelaskan cara merotasi sesi dengan bersih.

Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS melalui CONNECT) dan port 7778 (SOCKS5). Format username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Terkait: 504 Gateway Timeout · Connection reset · 503 Service Unavailable.

502 Bad Gateway: pertanyaan yang sering ditanyakan pengembang

Apakah 502 kesalahan dari proxy atau dari situs web?

Keduanya bisa. Baca isi respons: halaman kesalahan CDN menyebutkan CDN, yang mengarah ke situs web. Jika 502 terjadi di setiap situs yang Anda coba, itu menunjuk ke proxy atau pengaturan Anda, sedangkan 502 di satu situs berarti masalah pada situs tersebut. Uji URL yang sama tanpa proxy untuk memastikan.

Mengapa kesalahan 502 lebih sering terjadi dengan proxy residential?

Exit residential adalah koneksi rumah nyata, dan perangkat bisa mati, berpindah jaringan, atau kehilangan sinyal. Permintaan yang sedang terjadi saat itu bisa berakhir dengan 502 atau reset. Scraper yang baik menganggap ini normal dan mencoba ulang dengan exit baru, dengan batas kecil.

Haruskah saya beralih ke sesi lengket untuk mengurangi 502?

Tidak. Sesi lengket membuat Anda tetap pada satu exit, jadi jika exit itu gagal, setiap permintaan dalam sesi itu juga gagal. Gunakan koneksi bergilir untuk halaman independen dan sesi lengket hanya untuk alur multi-langkah. Akhiri sesi lengket setelah 502 dan mulai sesi baru.

Kesalahan proxy lain dalam referensi ini

Kode status HTTP

Kesalahan browser dan klien

Error koneksi dan TLS

Proxy residensial dengan dokumentasi yang membahas kasus kegagalan

Proxy residensial CrawlRelay dari US$0,50/GB, lalu lintas yang tidak pernah kedaluwarsa.

Dari US$0,50/GB · tanpa KYC

Mulai sekarang