防护域名开启“WEB基础防护”之后,如何排查500/502/504错误?
防护域名开启“WEB基础防护”之后,访问网站如果出现“500 ”,“502”,“504”等报错,并且显示“Web应用防火墙”和“网站”连接失败,如图1所示。
可能的原因比较多,如防火墙拦截、源站配置错误、HTTPS/WebSockets采用不安全的协议版本、后端服务器性能问题等。
以下是可能的原因及解决方案:
- 防火墙、后端服务器安全防护软件、业务限速策略拦截。
现象:防护域名开启“WEB基础防护”之后正常,但是一段时间后就报502,或者大概率出现502。
解决方法:将高防的回源IP段添加到防火墙(硬件或软件)、安全防护软件、业务限速模块的白名单。
- 源站配置错误
现象:防护域名开启“WEB基础防护”之后,访问页面返回502/500,或者大概率出现502/500(当后端配置了多个服务器的情况)。
解决方法:在“域名接入”页面,防护域名列表中找到相应的域名记录,单击“操作”列中的“编辑”,确认转发协议、IP、端口等信息是否正确。
如图2配置,可在浏览器访问http://xx.xx.xx.108:80 、https://xx.xx.xx.108:443来检查后端业务端口是否打开。
- HTTPS/WebSockets采用不安全的协议版本
现象:防护域名开启“WEB基础防护”之后,HTTPS/WebSockets业务大概率返回502,而直接通过IP访问源站正常。
解决方法:因为SSL低版本的协议存在严重的安全隐患,华为WAF防护支持TLS1.2及以上版本的协议。所以如果您的业务服务器的SSL版本较低,防护域名开启“WEB基础防护”之后则会出现502错误,需要您升级SSL版本解决问题。
您可以通过访问“https://www.ssllabs.com/ssltest/index.html”检查网站服务的SSL版本信息:- 如果您的Web服务器是Windows 2008以前的版本,SSL协议不支持TLS1.2及以上。您需要将服务器版本升级到Windows 2008以上(或Linux较新版本的操作系统),并在IIS等服务中开启TLS1.2。
- 如果您的Web服务是其他系统,请确认SSL协议是否是TLS1.2或以上。
- 后端服务器性能问题
现象:防护域名开启“WEB基础防护”之后,业务正常。但业务量增加时,502/504比例增加。直接访问源站也有一定概率出现502/504的返回码。
解决方法:
- 优化服务器的相关配置,包括TCP网络参数的优化配置,Ulimit相关参数设置等。
- 对后端ECS扩容来支撑业务增长,DDoS高防支持配置多个后端服务器。