# 502 Bad Gateway via een proxy: wat het betekent en hoe dit op te lossen

> Een 502 Bad Gateway via een residential proxy betekent dat de gateway geen geldig antwoord kreeg upstream. Oorzaken, hoe je proxy van doel herkent, retry-code.

- URL: https://crawlrelay.com/nl/docs/errors/502-bad-gateway/
- Laatst bijgewerkt: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

HTTP-statuscode (5xx, serverfout): het exacte bericht in elk hulpmiddel, de waarschijnlijke oorzaken in volgorde, en de oplossing die werkt.

**Kort antwoord — Wat betekent 502 Bad Gateway bij een proxy?**

**502 Bad Gateway** betekent dat een gateway of proxy een ongeldig antwoord of geen antwoord ontving van de volgende server in de keten. Via CrawlRelay residential proxies betekent een 502 meestal dat de exit-verbinding of het doel midden in de aanvraag faalde. Probeer het opnieuw met een nieuwe verbinding. Als 502's bij alleen één site blijven, ligt het probleem bij de site; treedt het bij alle sites op, controleer dan je setup.

## 502 Bad Gateway in één oogopslag

| Attribuut | Waarde |
| --- | --- |
| Fout | 502 Bad Gateway |
| Type | HTTP-statuscode (5xx, serverfout) |
| Verzonden door | De proxy-gateway of een reverse proxy voor het doel |
| Gedefinieerd in | RFC 9110, section 15.6.3 |
| Opnieuw proberen? | Ja, bij een nieuwe verbinding of sessie |
| Eerst controleren | Probeer het opnieuw met een nieuw IP; als de fout aanhoudt, test het doel zonder proxy |

## Wat betekent 502 Bad Gateway?

RFC 9110 beschrijft 502 als een manier van de gateway om te zeggen dat de server erachter slecht antwoordde. In een scraping-keten zijn er minstens twee gateways: de proxy en vaak een CDN of load balancer voor de website. Beide kunnen een 502 geven, en de response body vertelt meestal welke.

Residential netwerken voegen nog een schakel toe. De exit is een echte huishoudverbinding en een apparaat kan middenin een aanvraag het netwerk verlaten. De gateway heeft dan niets geldigs om terug te sturen.

## Hoe ziet a 502 eruit in Python, curl, Node.js en browsers?

Dezelfde fout verschijnt anders in elk hulpmiddel. Dit zijn de berichten om in je logs te zoeken:

- **Python requests:** `status_code == 502`, of `ProxyError('Unable to connect to proxy', OSError('Tunnel connection failed: 502 Bad Gateway'))` voor HTTPS-doelen
- **curl:** `curl: (56) CONNECT tunnel failed, response 502`
- **Browsers:** `net::ERR_TUNNEL_CONNECTION_FAILED` op HTTPS, of een simpele foutpagina op HTTP
- **Scrapy:** retried standaard, want 502 zit in `RETRY_HTTP_CODES`

## Wat veroorzaakt a 502?

Waarschijnlijk eerst:

- **De exit verliet de pool** tijdens de aanvraag, wat op residential netwerken voorkomt.
- **Het doel sloot de verbinding**, crashte of gaf iets foutief terug.
- **De CDN van het doel faalde** om zijn eigen origin te bereiken.
- **DNS-fout voor het doel** aan de exit-kant, bijvoorbeeld een typefout in de hostnaam.
- **Zeer smal targeten** met weinig exits, dus fouten verschijnen steeds opnieuw bij dezelfde kleine set.

## Hoe diagnosticeer ik a 502 stap voor stap?

1. Probeer de aanvraag op een nieuwe verbinding opnieuw. Een enkele 502 die verdwijnt was een weggevallen exit.
2. Lees beantwoording body en headers: een CDN-foutpagina noemt de CDN; een korte proxymelding noemt de gateway.
3. Test het doel via je eigen verbinding zonder proxy.
4. Verbreding van targeting van stad naar land en vergelijk het foutpercentage.

*Test de foutieve URL met curl (HTTP-poort, uitvoerig)*

```bash
# 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:PASSWORD@gw.crawlrelay.com: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
```

## Hoe los ik a 502 op?

- **Probeer een nieuwe sessie-ID** of zonder sessie-ID, zodat het verzoek via een andere exit loopt.
- **Stel praktische timeouts in** zodat een dode exit snel faalt in plaats van te hangen.
- **Log 502's per host** en pauzeer een host waarvan het aantal 502's stijgt: die is waarschijnlijk offline.

*Python: opnieuw proberen met Retry-After, exponentiële backoff en jitter*

```python
import random
import time

import requests

PROXY = "http://USERNAME:PASSWORD@gw.crawlrelay.com: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))
```

## Moet ik opnieuw proberen na a 502?

Ja, probeer een 502 opnieuw, maar met een nieuwe exit en met een limiet. Twee of drie pogingen met korte backoff zijn genoeg. Een 502 die bij meerdere exits voorkomt wijst op het doel en meer herhalingen helpen niet. Houd het tempo per host bij zodat één falende site je retry-queue niet vult.

## Hoe geldt 502 Bad Gateway voor CrawlRelay?

Met CrawlRelay drop je de sessie-ID of maak je een nieuwe aan zodat je meestal via een ander residential IP weggaat. Een sticky session bindt je aan één exit, dus een 502 binnen een sticky session zou die sessie in je code moeten beëindigen. De [sessions guide](https://crawlrelay.com/nl/docs/sessions/) legt uit hoe je een sessie netjes roteert.

Gateway: `gw.crawlrelay.com`, poort 7777 (HTTP, HTTPS via CONNECT) en poort 7778 (SOCKS5). Gebruikersnaamformaat: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Gerelateerd: [504 Gateway Timeout](https://crawlrelay.com/nl/docs/errors/504-gateway-timeout/) · [Connection reset](https://crawlrelay.com/nl/docs/errors/connection-reset/) · [503 Service Unavailable](https://crawlrelay.com/nl/docs/errors/503-service-unavailable/).

## 502 Bad Gateway: vragen die ontwikkelaars stellen

### Is een 502 de fout van de proxy of van de website?

Beide. Lees de response body: CDN-foutpagina's noemen de CDN, wat verwijst naar de website. Een 502 op elke site die je probeert duidt op de proxy of jouw setup, terwijl een 502 op één site naar die site wijst. Test dezelfde URL zonder de proxy om zeker te zijn.

### Waarom komen 502-fouten vaker voor bij residential proxies?

Residential exits zijn echte thuisverbindingen, en apparaten gaan offline, veranderen van netwerk of verliezen signaal. Een verzoek dat onderweg is als dit gebeurt eindigt met een 502 of een reset. Een goede scraper behandelt dit als normaal en probeert opnieuw via een nieuwe exit, met een kleine limiet.

### Moet ik overstappen op sticky sessions om 502's te verminderen?

Nee. Een sticky session houdt je op één exit, dus als die exit uitvalt, faalt elk verzoek in die sessie mee. Gebruik roterende verbindingen voor onafhankelijke pagina's en sticky sessions alleen voor meerstapsflows. Beëindig een sticky session na een 502 en begin een nieuwe.

## Andere proxyfouten in deze referentie

- [401 Unauthorized vs 407](https://crawlrelay.com/nl/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/nl/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/nl/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/nl/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/nl/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/nl/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/nl/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/nl/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/nl/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/nl/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/nl/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/nl/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/nl/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/nl/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/nl/docs/errors/ssl-wrong-version-number/)

**Residentiële proxy's met documentatie die de faalgevallen beschrijft** CrawlRelay residentiële proxy's van US$ 0,50/GB, verkeer dat nooit verloopt. [Zie prijslijst](https://crawlrelay.com/nl/pricing/) · [Snelle start](https://crawlrelay.com/nl/docs/)

---

CrawlRelay: CrawlRelay is een developer-first dienst met roterende residentiële proxy's en mobiele 4G-proxy's voor scrapers en AI-datastromen: niet-vervalverkeer op basis van pay-as-you-go vanaf US$ 0,50/GB, betaald in crypto, zonder ID-upload. Zonder KYC — geen ID, geen selfie, geen documenten. Betaal met crypto.
