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

问题描述

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

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

这是因为WAF默认不会维持超过120秒(没有任何数据交互)的长连接。

解决方案

  • WAF独享集群支持自定义连接超时时间。如果您使用独享集群防护网站业务,则可以修改网站配置,根据业务需要,在120~3600(单位:秒)范围内自定义读、写连接超时时长。更多信息,请参见设置独享集群
  • 如果您使用共享集群防护资源,则目前不支持修改连接超时时长。建议您修改长连接业务请求的交互方式,让长连接在60秒内能有一些数据交互(例如ACK报文、心跳包、keep-alive等任何可以维持会话的报文)。

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