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

express-http-proxy设置transfer-encoding:chunked时重置连接问题排查

问题排查与解决:express-http-proxy处理chunked请求时的504超时问题

问题现象

使用express-http-proxy将example.com的请求代理至def.com,常规请求正常,但携带transfer-encoding: chunked头的请求会被立即重置连接,返回504网关超时,响应头带有x-timeout-reason: express-http-proxy reset the request。

原因分析

  1. 请求体解析逻辑冲突:express-http-proxy默认会等待完整接收请求体后再转发至目标服务器,但chunked编码的请求是流式分块传输,没有固定的Content-Length,代理会因超时等待完整请求体触发连接重置。
  2. 旧版本流式转发bug:低版本的express-http-proxy在处理chunked请求时,未正确实现流式数据的传递逻辑,导致分块数据无法正常转发,进而触发超时机制。

解决方法

  • 升级express-http-proxy至最新版本
    新版本修复了chunked请求的流式处理bug,执行命令完成升级:

    npm update express-http-proxy
    
  • 禁用请求体解析
    配置parseReqBody为false,强制代理不解析请求体,直接流式转发原始分块数据,避免等待完整请求体:

    var proxy = require('express-http-proxy');
    var app = require('express')();
    
    app.use('/proxy', proxy('https://def.com', {
      parseReqBody: false
    }));
    
  • 调整代理超时时间(可选)
    如果升级和禁用解析后仍存在超时,可通过timeout选项延长代理等待时长(单位:毫秒):

    app.use('/proxy', proxy('https://def.com', {
      parseReqBody: false,
      timeout: 30000 // 设置为30秒
    }));
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:39:53