本文介绍了在接入WAF的业务中,当客户端与服务器之间出现长连接超时响应问题的解决方法。

问题描述

在某些特定业务场景中,客户端在提交某个请求后,需要等待服务器处理超过60秒的时间才可以返回响应,并且在处理完毕之前服务器与客户端没有任何数据交互。

例如,您通过网页上传一个Excel表格,要求服务器处理其中的数据(处理时间约需3分钟),且在提交表格后120秒内,客户端与服务器之间没有任何数据交互(HTTP或者TCP报文)。这种情况下,WAF会返回一个504超时的响应给客户端,同时断开连接。

这是因为WAF不会维持超过120秒(没有任何数据交互)的长连接,而且该七层协议的超时时间目前不支持修改。

解决方案

建议您修改这种请求的交互方式,让这种长连接在60s内能有一些数据交互(如ack报文,心跳包,keep-alive等任何可以维持会话的报文)。

鉴于用户场景的多样性,暂不提供代码级别的修改建议,请开发人员结合自身业务特性进行调整。