WEB应用防火墙 WAF-如何排查404/502/504错误?:504 Gateway Timeout错误排查思路和处理建议

时间:2024-01-10 09:32:09

504 Gateway Timeout错误排查思路和处理建议

完成WAF 域名 接入配置之后,业务正常,但当业务量增加时,发生504错误的概率增加,直接访问源站IP也有一定概率出现504错误,请参考图8进行排查处理。

图8 504错误排查思路
表2 504错误问题处理

可能原因

排查方法

处理建议

原因一:后端服务器性能问题(连接数,CPU内存占用过大等)

源站性能问题,可以排查源站访问日志以及访问流量情况,定性分析。

  • 优化服务器的相关配置,包括TCP网络参数的优化配置,ulimit相关参数设置等。
  • 如果是云模式部署方式,建议在ELB上增加后端服务器组或创建新的ELB,支撑大量增长的业务量。
  • 如果“对外协议”是HTTPS,建议在WAF设置HTTPS转发,回源走HTTP协议即“源站协议”设置为HTTP,降低后端服务器的计算压力。

    修改服务器信息的详细操作,请参见修改服务器信息

  • 使用CC防护规则,拦截恶意流量。

原因二:

  • 安全组未将WAF回源IP设置为白名单或未放开端口
  • 源站有防火墙设备,且该防火墙设备拦截了WAF的回源IP

建议采用以下方法进行排查:

  • 排查客户源站是否有安全组,防火墙,服务器安全软件等。
  • 在客户端与WAF上同时进行抓包分析,排查源站防火墙等设备对WAF的长连接是否有主动丢包的现象。

原因三:连接超时、read超时

说明:
  • 源站响应时间过长导致504(数据库查询时间过长,大文件上传时间过长,源站故障等)。
  • WAF回源到客户源站超时时间大多为60秒或180秒,若超时则会报错504。

该问题有以下排查方法:

  • 绕过WAF,直接访问客户源站,查看响应时长
  • 查看全量日志里面访问日志源站响应时长
  • 建议客户绕过WAF测试上传功能,并检查客户上传文件大小
  • 数据库查询时间过长:
    • 调整优化业务,尽量缩短查询时长,优化用户体验。
    • 修改请求的交互方式,让这种长连接在 60s 内能有一些数据交互(如,ack报文、心跳包、keep-alive等任何可以维持会话的报文)。
  • 大文件上传时间过长:
    • 调整优化业务,尽量缩短文件上传时间。
    • 建议使用FTP方式上传文件。
    • 直接通过IP上传,或者使用没有被WAF防护的域名上传。
    • 使用WAF的独享模式,独享WAF回源超时默认为180s。
  • 源站故障类:

    检查源站业务是否正常。

原因四:源站带宽不足,访问流量过大,带宽超限制

该问题有以下排查方法:

  • 若客户配置的WAF后端为7层ELB,则可以在ELB上查504相关日志
  • 若客户配置的WAF后端为4层ELB,则可以在ELB上查“Traffic exceeded the bandwidth threshold”相关字段日志
  • 若客户配置的WAF后端为EIP,则在504高峰查看EIP流量监控。

扩展源站服务器带宽。

创建新的ELB,参照以下方法将ELB的EIP作为服务器的IP地址,接入WAF。

修改服务器信息,大约需要2分钟同步生效。

  1. 创建负载均衡器
  2. 登录管理控制台
  3. 进入网站设置页面入口,如图9所示。

    图9 网站设置入口

  4. 在目标域名所在行的“防护网站”列中,单击目标域名,进入域名基本信息页面。
  5. “服务器信息”栏中,单击,进入“修改服务器信息”页面,单击“添加”,新增后端服务器。

    图10 服务器配置

  6. “源站地址”设置为ELB的弹性公网IP地址。
  7. 单击“确定”,服务器信息修改成功。
support.huaweicloud.com/waf_faq/waf_01_0066.html