问题描述
在配置阿里云DDoS高防后,访问网站时提示502报错。
问题原因及解决方案
在DDoS高防作为代理服务器尝试执行请求时,从上游服务器收到了无效的响应,导致发生502错误。因此,说明DDoS高防服务和源站之间的连接存在问题。
可能原因一:DDoS高防回源IP被源站拦截或限速
在完成网站业务切换后,网站的正常访问流量经过DDoS高防实例清洗,并由DDoS高防回源IP地址转发至源站服务器。因此,如果DDoS高防的回源地址不在源站防火墙的白名单中,访问流量可能被错误拦截,导致网站无法访问。
请参见放行DDoS高防回源IP,获取DDoS高防的回源IP网段,将回源IP网段添加至源站的防火墙、主机安全防护软件中。
可能原因二:源站本身出现异常
源站本身出现异常,将导致响应高防的请求超时,源站异常包括以下几种情况:
源站IP暴露,被恶意攻击导致瘫痪。
源站服务器机房物理故障。
源站服务器中Apache、Nginx等Web服务出现问题。
服务器内存、CPU占用过高,导致性能骤降。
源站上行链路拥挤阻塞。
可通过以下方法进行排查并进行处理:
修改本机
hosts
文件,将域名直接指向源站IP,绕过DDoS高防代理验证源站服务是否可用。测试结果
说明
直接访问源站IP失败
问题出在源站本身,请再检查以下内容:
检查网络连通性:请参照MTR工具进行网络链路分析,验证本地到源站IP的网络链路是否畅通。
检查端口连通性:使用
telnet
命令测试端口连通性,验证源站是否开放了服务端口。
直接访问源站IP成功
请核实DDoS高防配置是否异常。
查看源站流量、请求量是否有大量增长,判断源站IP是否暴露遭受DDoS攻击。
对比DDoS高防管理控制台中的监控,如果源站遭到大流量DDoS攻击,但DDoS高防管理控制台显示无异常,有可能是攻击绕过DDoS高防直接攻击源站。可能是源站IP暴露,被恶意攻击导致瘫痪,建议更换固定公网IP地址。
说明正常情况下,客户端请求访问DDoS高防,DDoS高防服务收到请求后把真实客户端的源IP转换成高防的回源IP(把真实客户端IP放在HTTP头部的X-Forwarded-For字段中)发送给源站。
如果源站IP暴露,客户端可以直接请求访问源站,这样就绕过了DDoS高防服务提供的防护。
查看源站服务器的CPU和内存占用情况、带宽的监控情况、服务器中服务的进程状态情况等。如有异常,请根据现场实际异常的情况进行修复。
可能原因三:连接超时配置问题
DDoS高防和源站的空闲连接超时时长设置不匹配。若源站配置的超时时长小于高防,源站会先关闭连接,而高防仍认为连接有效,导致后续请求复用已关闭的连接导致触发502。
请调整空闲连接超时时长,确保源站的空闲连接超时时长大于等于DDoS高防。
可能原因四:网络出现拥塞或抖动
在已经排除以上原因后,偶发的局部网络抖动、运营商线路故障等因素,也可能导致502错误。