Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas: BTC, USDT, USDC, ETH, SOL, LTC
Idioma: Español
Comienza ahora

Referencia de errores proxy · Códigos de estado HTTP

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

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.

Última actualización: · 5 minutos de lectura

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

Error504 Gateway Timeout
TipoCódigo de estado HTTP (5xx, error servidor)
Enviado porEl gateway proxy o una CDN delante del objetivo
Definido enRFC 9110, section 15.6.5
¿Reintentar?Sí, una o dos veces en una nueva salida
Primera comprobaciónCronometra 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)
# 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

¿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
import httpx

proxy = "http://USERNAME:[email protected]: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 · Read timed out · 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

Códigos de estado HTTP

Errores de navegador y cliente

Errores de conexión y TLS

Proxies residenciales con documentación que cubre los casos de fallo

CrawlRelay proxies residenciales de 0,50 US$/GB, tráfico que nunca expira.

Desde 0,50 US$/GB · sin KYC

Comienza ahora