# 504 Gateway Timeout a través de un proxy: causas y soluciones

> 504 Gateway Timeout significa que un gateway esperó demasiado por el servidor detrás. Causas con proxies residenciales, configuraciones de tiempo de espera y consejos para reintentos.

- URL: https://crawlrelay.com/es/docs/errors/504-gateway-timeout/
- Última actualización: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Código de estado HTTP (5xx, error servidor): el mensaje exacto en cada herramienta, las causas probables en orden y la solución que funciona.

**Respuesta rápida — ¿Qué significa 504 Gateway Timeout con un proxy?**

**504 Gateway Timeout** significa que un gateway, como el proxy o la CDN del sitio, esperó demasiado por el siguiente servidor y desistió. A través de proxies residenciales de CrawlRelay, el enlace lento suele ser el objetivo o la conexión del hogar del proxy. Reintenta una vez en una nueva salida, mantén las páginas ligeras y establece tus propios tiempos de espera para que una solicitud lenta falle bajo tus condiciones.

## 504 Gateway Timeout en pocas palabras

| Atributo | Valor |
| --- | --- |
| Error | 504 Gateway Timeout |
| Tipo | Código de estado HTTP (5xx, error servidor) |
| Enviado por | El gateway proxy o una CDN delante del objetivo |
| Definido en | RFC 9110, section 15.6.5 |
| ¿Reintentar? | Sí, una o dos veces en una nueva salida |
| Primera comprobación | Cronometra la misma petición sin el proxy |

## ¿Qué significa 504 Gateway Timeout?

La RFC 9110 define 504 como un gateway que no recibió respuesta a tiempo del servidor upstream que necesitaba. Es el gemelo timeout del 502: 502 significa una mala respuesta, 504 significa no hay respuesta a tiempo.

Un proxy residencial añade un salto que una petición directa no tiene: tu tráfico va al gateway, luego a una conexión de hogar, luego al sitio. Cada salto añade retraso, y el más lento decide el total.

## ¿Cómo se ve a 504 en Python, curl, Node.js y navegadores?

El mismo fallo se muestra de forma diferente en cada herramienta. Estos son los mensajes que debes buscar en tus registros:

- **Python requests:** `status_code == 504`, o `Tunnel connection failed: 504 Gateway Timeout` para objetivos HTTPS
- **curl:** `curl: (56) CONNECT tunnel failed, response 504`
- **Scrapy:** reintentos por defecto (504 está en `RETRY_HTTP_CODES`)
- **Sitios con CDN:** página de error del CDN con estado 504

## ¿Qué causa a 504?

Lo más probable al principio:

- **Un objetivo lento**, por ejemplo una página de búsqueda que tarda varios segundos en construir.
- **Una salida lenta**, como una conexión débil de hogar o una celda móvil congestionada.
- **Respuestas grandes** que tardan más que la paciencia del gateway.
- **El servidor origen del sitio** con timeout detrás de su CDN, que responde con 504.

## ¿Cómo diagnostico a 504 paso a paso?

1. Cronometra la solicitud sin proxy. Si también es lenta en casa, el objetivo es lento.
2. Reintenta en una nueva salida y compara los tiempos.
3. Revisa el tamaño de la respuesta: una página de 5 MB es diferente a una de 50 KB.
4. Lee el cuerpo para ver si la página de error la escribió la CDN o el proxy.

*Prueba la URL que falla con curl (puerto HTTP, modo detallado)*

```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
```

## ¿Cómo soluciono a 504?

- **Define tiempos de espera explícitos**: unos 10 segundos para conectar y 30 a 60 segundos para leer en páginas normales.
- **Reintenta en una nueva salida** una o dos veces.
- **Solicita menos**: omite imágenes y medios cuando solo necesitas el HTML o el JSON API detrás de la página.
- **Programa páginas pesadas** fuera de horas pico para el país del objetivo.

*Python httpx: tiempos de espera explícitos para conectar, leer, escribir y en el pool*

```python
import httpx

proxy = "http://USERNAME:PASSWORD@gw.crawlrelay.com:7777"
timeout = httpx.Timeout(connect=10.0, read=30.0, write=10.0, pool=10.0)

with httpx.Client(proxy=proxy, timeout=timeout) as client:
    try:
        r = client.get("https://api.ipify.org")
        print(r.status_code, r.text)
    except httpx.TimeoutException as exc:
        print("timed out:", type(exc).__name__)  # ConnectTimeout, ReadTimeout...
```

## ¿Debo reintentar después de a 504?

Reintenta un 504 una o dos veces en una salida nueva, con un breve retraso. Si la misma URL agota el tiempo en varias salidas, el objetivo está lento o sobrecargado: reduce tu velocidad en ese host o intenta más tarde. Aumentar el tiempo de espera del cliente solo ayuda si el tiempo de espera del gateway no es el límite.

## ¿Cómo se aplica 504 Gateway Timeout a CrawlRelay?

Cada nueva conexión a CrawlRelay sin un ID de sesión suele obtener una salida residencial diferente, por lo que un reintento normalmente prueba otra conexión doméstica. Para objetivos lentos, mantén las cargas útiles pequeñas y mide el tiempo hasta el primer byte por separado del tiempo total de descarga.

Gateway: `gw.crawlrelay.com`, puerto 7777 (HTTP, HTTPS a través de CONNECT) y puerto 7778 (SOCKS5). Formato de usuario: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Relacionado: [502 Bad Gateway](https://crawlrelay.com/es/docs/errors/502-bad-gateway/) · [Read timed out](https://crawlrelay.com/es/docs/errors/read-timeout/) · [503 Service Unavailable](https://crawlrelay.com/es/docs/errors/503-service-unavailable/).

## 504 Gateway Timeout: preguntas que hacen los desarrolladores

### ¿Cuál es la diferencia entre 502 y 504?

Ambos provienen de un gateway. Un 502 significa que el servidor detrás envió una respuesta inválida o cortó la conexión. Un 504 significa que no envió nada a tiempo. Con proxies residenciales, 502 suele indicar una salida caída, y 504 un objetivo lento o una conexión doméstica lenta.

### ¿Puedo aumentar el tiempo de espera del proxy?

Controlas los tiempos de espera de tu cliente, no los internos del gateway. Establece explícitamente tus tiempos de conexión y lectura para que las solicitudes lentas fallen de manera predecible, reintenta con una salida nueva y haz las páginas más ligeras. Si un objetivo requiere respuestas muy largas, obtén su API o una página más ligera en su lugar.

### ¿Los proxies móviles son más lentos que los residenciales?

Pueden serlo, porque una salida móvil comparte una celda con otros usuarios y su velocidad cambia con la señal y la carga. Usa IPs móviles para objetivos que las necesiten y IPs residenciales para rastreos masivos. Mide tus propios tiempos de respuesta por tipo de salida antes de decidir.

## Otros errores de proxy en esta referencia

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

**Proxies residenciales con documentación que cubre los casos de fallo** CrawlRelay proxies residenciales de 0,50 US$/GB, tráfico que nunca expira. [Ver precios](https://crawlrelay.com/es/pricing/) · [Inicio rápido](https://crawlrelay.com/es/docs/)

---

CrawlRelay: CrawlRelay es un servicio de proxies residenciales rotativos y proxies móviles 4G/5G para desarrolladores, ideal para scrapers y pipelines de datos de IA: tráfico prepago sin vencimiento desde 0,50 US$/GB, pagado con criptomonedas, sin subir documentos de identidad. Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas.
