You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js使用Axios下载气象卫星/雷达图片时部分站点返回502 Bad Gateway问题求助

解决Axios在公司代理下请求气象站点图片返回502 Bad Gateway的问题

我来帮你梳理下这个问题的可能原因和对应的解决方案,毕竟你已经确认代理在其他站点能正常工作,说明问题大概率出在请求细节或者代理与目标站点的交互上:

1. 模拟浏览器请求头,避免被拦截

很多站点(包括气象服务类)会验证请求的User-Agent等标识,Axios默认的请求头会暴露是脚本发起的请求,可能被目标站点或公司代理的安全策略拦截。

你可以完全复制浏览器请求的头信息到Axios配置里,比如:

return Axios({
  method: 'get',
  url: fileUrl,
  params: params,
  proxy: { /* 你的代理配置 */ },
  responseType: 'stream',
  headers: {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    'Accept': 'image/gif, image/jpeg, image/png, image/svg+xml, */*',
    'Accept-Language': 'en-US,en;q=0.9',
    'Referer': 'https://radar.weather.gov/' // 针对雷达站点,模拟从官网跳转的请求
  }
})

提示:你可以在浏览器开发者工具的Network面板里,找到对应图片请求的Request Headers,直接复制所有字段过来,确保和浏览器请求完全一致。

2. 排查代理的SSL/TLS交互问题

从响应头里的squid/4.13和ERR_READ_ERROR来看,代理服务器在和目标站点建立SSL连接时可能出了问题:比如目标站点的证书不被代理信任,或者代理不支持目标站点要求的TLS版本。

你可以尝试以下两种方式:

  • 指定TLS版本并临时跳过证书验证(仅测试用):
    const https = require('https');
    const sslAgent = new https.Agent({
      minVersion: 'TLSv1.2', // 匹配目标站点支持的TLS版本,很多气象站点用TLS1.2+
      rejectUnauthorized: false // 仅测试时用,生产环境不要开启,避免安全风险
    });
    
    return Axios({
      // ...其他配置
      httpsAgent: sslAgent
    })
    
  • 联系公司IT团队:确认代理是否允许访问该目标站点的443端口,是否存在证书拦截(比如公司的根证书未被Node.js信任)。

3. 尝试更换响应类型,绕过流式传输的代理限制

你当前用了responseType: 'stream',部分代理服务器对分块流式响应的处理可能有兼容性问题。可以先尝试获取二进制buffer再写入文件:

return Axios({
  method: 'get',
  url: fileUrl,
  params: params,
  proxy: { /* 你的代理配置 */ },
  responseType: 'arraybuffer' // 改为arraybuffer类型
}).then((response) => {
  fs.writeFileSync(outputLocationPath, response.data);
  return response;
})

这种方式一次性获取完整响应,避免代理在流式传输中出现中断。

4. 调试建议

  • 对比浏览器和Axios请求的所有细节:包括请求头、Cookie(如果有)、请求方式等,确保没有遗漏关键字段。
  • 直接在本地环境(脱离公司代理)测试目标站点的请求,如果能正常获取,说明问题完全出在代理与目标站点的交互上,需要和IT团队协作排查代理日志。

内容的提问来源于stack exchange,提问作者Lazaro Falcon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 16:52:37