Node.js 代理长文件上载请求时出现断管错误

Node.js 代理长文件上载请求时出现断管错误,node.js,apache,proxy,reverse,Node.js,Apache,Proxy,Reverse,最近和一夜之间,来自两台nodejs服务器的Apache错误日志中充满了以下内容: [代理:错误][pid xxx](32)管道破裂:[客户端xxx.xxx.xxx.xxx:59835]AH01084:传递请求正文未能发送到127.0.0.1:9001(127.0.0.1),参考者: 及 [proxy_http:error][pid xxx][client xxx.xxx.xxx.xxx:59835]AH01097:从xxx.xxx.xxx()到127.0.0.1:9001(127.0.0.1)

最近和一夜之间,来自两台nodejs服务器的Apache错误日志中充满了以下内容:

[代理:错误][pid xxx](32)管道破裂:[客户端xxx.xxx.xxx.xxx:59835]AH01084:传递请求正文未能发送到127.0.0.1:9001(127.0.0.1),参考者:

[proxy_http:error][pid xxx][client xxx.xxx.xxx.xxx:59835]AH01097:从xxx.xxx.xxx()到127.0.0.1:9001(127.0.0.1)的传递请求正文失败,请参考:

当用户试图上传大文件时就会发生这种情况。传输完成后,用户会收到502坏网关错误。这是随机发生的,但文件越大,最有可能发生

谢谢

编辑:错误似乎发生在断开连接建立前60秒。关于第一条错误消息,有时显示该错误消息,有时显示此错误消息:

[代理:错误][pid xxx](104)对等方重置连接:[客户端xxx.xxx.xxx.xxx:58520]AH01084:传递请求正文未能发送到127.0.0.1:9000(127.0.0.1),请参考:

我尝试过在apache2.conf中增加超时,如下所示:

Timeout 900
ProxyTimeout 900
KeepAliveTimeout 600
没有结果

最后,我在虚拟主机中添加了以下内容:

Timeout 600
ProxyTimeout 600
这是:

ProxyPass /           http://127.0.0.1:9000/ timeout=600
ProxyPassReverse / http://127.0.0.1:9000/ timeout=600
但错误总是发生在传输开始前60秒

编辑2:我已经将/proc/sys/net/ipv4/tcp\u fin\u timeout的值修改为120(它是60)。但它不起作用

编辑3:显然这是NodeJS 12.19.0的一个新“功能”,它在建立连接前60秒关闭连接。我用Nginx解决了这个问题。此web服务器在文件已上载到其缓冲区时建立新连接。然后,服务器通过NodeJS进行传输,传输时间不到60秒