问题描述
在配置阿里云DDoS高防后,访问网站时提示502报错。
问题原因
在DDoS高防作为代理服务器尝试执行请求时,从上游服务器收到了无效的响应,导致发生502错误。因此,说明DDoS高防服务和源站之间的连接存在问题。在完成网站业务切换后,网站的正常访问流量经过DDoS高防实例清洗,并由DDoS高防回源IP地址转发至源站服务器。因此,如果DDoS高防的回源地址不在源站防火墙的白名单中,访问流量可能被错误拦截,导致网站无法访问。根据分析可知,发生报错的可能原因如下:
解决方案
DDoS高防回源IP被源站拦截或限速
只要在源站放行所有的DDoS高防的回源IP,即可解决出现的502错误。设置放行DDoS高防回源IP的方法有以下两种:
- 请参见放行DDoS高防回源IP,获取DDoS高防的回源IP网段,并在您源站的防火墙、主机安全防护软件(如安全狗)中将回源IP网段添加到白名单。
说明 为网站启用DDoS高防服务时,为了避免DDoS高防的回源流量被源站服务器上的安全软件误拦截,建议您设置放行DDoS高防回源IP。
- 直接关闭源站的防火墙和主机安全防护软件。
源站本身出现异常
源站本身出现异常,将导致响应高防的请求超时,源站异常包括以下几种情况:
- 源站IP暴露,被恶意攻击导致瘫痪。
- 源站服务器机房物理故障。
- 源站服务器中Apache、Nginx等Web服务出现问题。
- 服务器内存、CPU占用过高,导致性能骤降。
- 源站上行链路拥挤阻塞。
可通过以下方法进行排查并进行处理:
- 修改本机
hosts
文件,将域名直接指向源站IP。- 如果直接通过源站IP也不能访问,请执行以下检查操作,如果存在丢包或超时等现象,则可判断是源站本身出现异常,请根据源站异常的实际情况进行修复后,继续进行下一步排查。
- 请参见使用ping命令丢包或不通时的链路测试方法,使用ping命令测试与源站IP连通性时,检查是否存在丢包情况。
- 使用
telnet
命令测试端口连通性,查看是否存在超时情况。
- 如果直接通过源站IP访问正常,则需要核实DDoS高防配置是否异常。
- 如果直接通过源站IP也不能访问,请执行以下检查操作,如果存在丢包或超时等现象,则可判断是源站本身出现异常,请根据源站异常的实际情况进行修复后,继续进行下一步排查。
- 查看源站流量、请求量是否有大量增长,同时对比DDoS高防管理控制台中的监控。如果源站遭到大流量攻击,但DDoS高防管理控制台显示无异常,则有可能是攻击绕过DDoS高防直接攻击源站。这种情况,可能是源站IP暴露,被恶意攻击导致瘫痪。建议您尽快更换源站IP。更多信息,请参见更换源站ECS公网IP。
说明
- 正常情况下,客户端请求访问DDoS高防,DDoS高防服务收到请求后把真实客户端的源IP转换成高防的回源IP(把真实客户端IP放在HTTP头部的X-Forwarded-For字段中)发送给源站。
- 如果源站IP暴露,客户端可以直接请求访问源站,这样就绕过了DDoS高防服务提供的防护。
- 排除遭受攻击的原因后,可查看源站服务器的CPU和内存占用情况、带宽的监控情况、服务器中服务的进程状态情况等。如有异常,请根据现场实际异常的情况进行修复。
网络出现拥塞或抖动
在已经排除以上两种原因后,偶发的局部网络抖动、运营商线路故障等因素,也可能导致502错误。
相关文档
适用于
DDoS高防
如果您的问题仍未解决,您可以在阿里云社区免费咨询。