无需 KYC —— 无需身份证、自拍、文件证明。支持加密货币支付:BTC, USDT, USDC, ETH, SOL, LTC
语言: 简体中文
开始使用

代理错误参考 · HTTP 状态码

通过代理时的504网关超时:原因与解决办法

HTTP 状态码(5xx,服务器错误):每个工具中的精确错误信息、可能原因排序及有效解决方案。

最后更新:

快速回答

代理中的504 Gateway Timeout是什么意思?

504网关超时 表示网关(代理或网站CDN)等待后端服务器响应超时放弃。通过CrawlRelay住宅代理,慢链路通常是目标或出口家用连接。新出口重试一次,保持请求轻量,自行设定客户端超时,让慢请求按你控制时限失败。

504 Gateway Timeout一览

错误504 Gateway Timeout
类型HTTP 状态码(5xx,服务器错误)
发送方代理网关或目标前方的CDN
定义于RFC 9110, section 15.6.5
要重试吗?是,新出口尝试一两次
先检查无代理时测同一请求响应时间

504 Gateway Timeout是什么意思?

RFC 9110定义504为网关未及时收到上游服务器响应。502是错误响应,504是无响应超时。

住宅代理多一跳:流量先到网关,再到家用连接,最后到网站。每跳增加延迟,慢的决定整体耗时。

在Python、curl、Node.js和浏览器中a 504是什么样?

每个工具中相同的失败会有不同的提示信息。请在日志中搜索以下信息:

  • Python requests: status_code == 504,HTTPS目标有时为Tunnel connection failed: 504 Gateway Timeout
  • curl: curl: (56) CONNECT tunnel failed, response 504
  • Scrapy: 默认重试(504包含于RETRY_HTTP_CODES)
  • CDN托管站点: CDN发出的504错误页

导致a 504的原因是什么?

最可能的首要原因:

  • 目标响应慢,比如需要几秒构建的搜索页。
  • 出口慢,如弱家宽或拥堵移动网络。
  • 响应内容大,超过网关等待极限。
  • 站点源服务器超时,CDN再回504。

如何一步步诊断a 504?

  1. 无代理测试请求响应时间,若家里也慢说明目标慢。
  2. 新出口重试并比较时间。
  3. 检查响应大小:5MB页面问题与50KB不同。
  4. 看响应体确定是CDN还是代理返回的错误页。
用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 504?

  • 设定显式超时:连接约10秒、读取30到60秒适合普通页面。
  • 新出口重试一两次。
  • 减少请求量:只需HTML或JSON时跳过图片和媒体。
  • 安排重页面在目标国非高峰时间访问。
Python httpx:明确连接、读取、写入和连接池超时
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...

遇到a 504后要重试吗?

在一个新的出口上,遇到504错误时尝试重试一两次,重试间隔较短。如果同一URL在多个出口都超时,说明目标响应慢或服务器过载:降低该主机的请求频率或稍后再试。提高客户端超时只在网关超时不是瓶颈时有效。

504 Gateway Timeout如何应用于CrawlRelay?

每次没有会话ID的连接到 CrawlRelay 通常都会分配不同的住宅出口,因此重试通常会测试另一个家庭连接。面对响应慢的目标,请保持请求负载较小,并分别测量首字节时间和总下载时间。

网关:gw.crawlrelay.com,端口7777(通过CONNECT的HTTP、HTTPS)和端口7778(SOCKS5)。用户名格式:USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}。相关内容:502 Bad Gateway · Read timed out · 503 Service Unavailable。

504 Gateway Timeout:开发者常问的问题

502和504有什么区别?

两者都是来自同一个网关。502表示后端服务器返回了无效响应或断开了连接。504表示没有及时返回响应。对住宅代理来说,502通常指出口断开,504则表示目标响应慢或家庭连接慢。

我能提高代理的超时时间吗?

您控制客户端的超时设置,而非网关的内部超时。请明确设置连接及读取超时时间,使慢请求能按预期失败并重试新出口,同时保持页面轻量。如果目标需要很长时间响应,请改请求其API或更轻量页面。

移动代理比住宅代理慢吗?

移动代理可能较慢,因为其出口与其他用户共用移动信号,其速度随信号强度和负载波动。针对需要的目标使用移动IP,其它场景用住宅IP批量抓取。使用前测量每种出口的响应时间。

本参考中的其他代理错误

HTTP 状态码

浏览器和客户端错误

连接和 TLS 错误

带有涵盖失败案例文档的住宅代理

来自US$0.50/GB的CrawlRelay住宅代理,流量永不过期。

从 US$0.50/GB 开始 · 无需 KYC

开始使用