如何排查404/502/504错误?
网站接入WAF防护之后,如果您访问网站时出现404 Not Found、502 Bad Gateway,504 Gateway Timeout等错误,请参考以下方法解决。
404 Not Found错误排查思路和处理建议
网站接入WAF后,访问网站时出现404 Not Found错误,请参考图1进行排查处理。
- 如果访问网站返回如图2所示页面,原因和处理建议说明如下:
原因一:添加防护域名到WAF时,配置了非标准端口,例如配置了如图3所示的非标准端口业务,访问网站时未加端口用“https://www.example.com”或者“https://www.example.com:80”访问网站。
处理建议:在访问链接后加上非标准端口,再次访问源站,如“https://www.example.com:8080”。
原因二:添加防护域名到WAF时,没有配置非标准端口,访问时使用了非标准端口或者“源站端口”配置的非标准端口,例如配置了如图4所示的防护业务,用“http://www.example.com:8080”访问网站。没有配置非标准端口的情况下,WAF默认防护80/443端口的业务。其他端口的业务不能正常访问,如果您需要防护其他非标准端口的业务,请重新进行域名配置。
处理建议:直接访问网站域名,如“https://www.example.com”。
原因三:域名解析错误。
处理建议:- 如果该域名已添加到WAF进行防护,参照域名解析重新完成域名接入的操作,使流量经过WAF进行转发。
- 如果该域名未添加到WAF进行防护,需要在DNS服务商处将域名解析到源站的IP。
原因四:用户多个域名走同个WAF集群回源到同一个后端HTTPS源站+端口,由于WAF回源是长连接复用的,后端源站节点无法分辨是哪个域名(nginx通过Host和SNI分辨),会有一定几率出现A域名的请求转发到B域名的后端,所以会出现404。
处理建议:修改域名在WAF的后端配置,不同的域名走不同的源站端口进行规避。
- 如果访问网站时,返回的不是图2所示的404页面,原因和处理建议说明如下:
原因:网站页面不存在或已删除。
处理建议:请排查网站问题。
502 Bad Gateway错误排查思路和处理建议
完成WAF配置之后网站访问正常,但过一段时间,访问页面返回502,或者大概率出现502,请参考图5进行排查处理。
可能原因 |
处理建议 |
---|---|
原因一:网站使用了其他的安全防护软件(如360、安全狗、云锁或云盾等安全防护软件),这些软件把WAF的回源IP当成了恶意IP,拦截了WAF转发的请求 |
源站服务器配置放行WAF回源IP的访问控制策略。
|
原因二:网站的后端配置了多个服务器,其中某个源站不通 |
|
原因三:网站服务器性能问题 |
排查网站问题并联系您的网站管理员进行解决。 |
原因四:源站使用了CFW,CFW拦截了WAF的回源ip |
该问题有以下排查方法:
在CFW上将WAF的回源IP放行,具体操作请参见配置访问控制策略 |
当网站的后端配置了多个服务器,其中某个源站不通时,请参照以下操作步骤,检查网站的服务器是否配置正确。
修改服务器信息,大约需要2分钟同步生效。
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域或项目。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“网站设置”,进入“网站设置”页面。
- 在目标域名所在行中,单击目标域名,进入域名基本信息页面。
- 在“源站服务器”栏中,单击编辑,进入“修改服务器信息”页面,确保对外协议、源站协议、源站地址、端口等信息配置正确。
图6 服务器配置
- 检测各个源站是否能正常访问。
- 在主机上执行以下命令进行检测。
curl http://xx.xx.xx.xx:yy -kvv
- xx.xx.xx.xx代表源站服务器的源站IP地址,yy代表源站服务器的源站端口,xx.xx.xx.xx和yy必须是同一个服务器的源站地址和端口。
- 执行curl命令的主机需要满足以下条件:
- 网络通信正常。
- 已安装curl命令。Windows操作系统的主机需要手动安装curl,其他操作系统自带curl。
图7 检测源站
- 如果回显信息提示连接正常表示可以正常访问网站。
- 如果回显信息提示“connection refused”表示源站不通,不能正常访问网站,请执行步骤 8。
- 在浏览器中输入“http://源站地址:源站端口”进行检测。
- 如果可以访问,表示网站访问正常。
- 如果不能访问,表示源站不通,不能正常访问网站,请执行步骤 8。
- 在主机上执行以下命令进行检测。
- 检测服务器是否运行正常。
如果运行不正常,请尝试重启服务器。
504 Gateway Timeout错误排查思路和处理建议
完成WAF域名接入配置之后,业务正常,但当业务量增加时,发生504错误的概率增加,直接访问源站IP也有一定概率出现504错误,请参考图8进行排查处理。
可能原因 |
排查方法 |
处理建议 |
---|---|---|
原因一:后端服务器性能问题(连接数,CPU内存占用过大等) |
源站性能问题,可以排查源站访问日志以及访问流量情况,定性分析。 |
|
原因二:
|
建议采用以下方法进行排查:
|
|
原因三:连接超时、read超时
说明:
|
该问题有以下排查方法:
|
|
原因四:源站带宽不足,访问流量过大,带宽超限制 |
该问题有以下排查方法:
|
扩展源站服务器带宽。 |
原因五:源站使用了CFW,CFW拦截了WAF的回源ip |
该问题有以下排查方法:
|
在CFW上将WAF的回源IP放行,具体操作请参见配置访问控制策略 |
创建新的ELB,参照以下方法将ELB的EIP作为服务器的IP地址,接入WAF。
修改服务器信息,大约需要2分钟同步生效。
- 创建共享型负载均衡器。
- 登录管理控制台。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“网站设置”页面。 ,进入
- 在目标域名所在行的“域名”列中,单击目标域名,进入域名基本信息页面。
- 在“源站服务器”栏中,单击编辑,进入“修改服务器信息”页面,单击“添加”,新增后端服务器。
图9 服务器配置
- 将“源站地址”设置为ELB的弹性公网IP地址。
- 单击“确定”,服务器信息修改成功。