技术解析
由于现在互联网环境非常复杂,网络攻击事件时有发生,为了保障服务器的正常稳定运行,很多企业都会给服务器配置高防。
有些企业在接入高防服务后,访问网站会提示502错误,这是为什么呢?一般来说问题要么出在高防IP上,要么是源站本身的问题。本文就来详细说说配置高防IP后,访问网站出现502报错的常见原因和解决方法。
一、高防回源IP被源站拦截或限速
1、高防回源IP
在配置高防IP后,真实服务器(源站)的IP因为高防IP在中间代理而被隐藏。因此,在源站看来,所有经过高防IP服务访问的客户端源IP都会变成高防的回源IP。
正常情况下,客户端请求访问高防IP,高防IP服务收到请求后把真实客户端的源IP转换成高防的回源IP(把真实客户端IP放在HTTP头部的X-Forwarded-For字段中)发送给源站。
但是,如果源站IP暴露,客户端可以直接请求访问源站,这样就绕过了高防IP服务提供的防护。
2、为什么会被拦截或限速
没有配置高防IP代理时,在源站看来真实客户端地址是非常分散的。正常情况下,每个源IP的请求量都不大。而配置高防IP服务后,高防回源的IP段固定且有限。
因此,在源站看来所有的访问请求都来自高防回源IP段,分摊到每个回源IP上的请求量也会变大,导致源站可能误认为高防回源IP在对源站进行攻击。此时,源站如果有防御DDoS的安全策略,很可能会将回源IP拦截或者限速。
3、回源IP被拦截如何解决
根据上述原理,只要在源站放行所有的高防回源IP,即可解决出现的502错误。设置源站放行高防回源IP方法有两种:
方法一:参考如何查看高防回源IP段获取高防回源IP,然后在您源站的防火墙、主机安全防护软件(如安全狗)中,将高防回源IP网段添加到白名单。
方法二:直接关闭源站的防火墙及主机安全防护软件。
二、源站本身出现异常,导致响应高防的请求超时
源站本身异常包括以下情形:
源站IP暴露,被恶意攻击导致瘫痪。
源站服务器机房物理故障。
源站服务器中Apache、Nginx等Web程序出现问题。
服务器内存、CPU占用过高,导致性能骤降。
源站上行链路拥挤阻塞。
判断方法
修改本机hosts文件,将域名直接指向源站IP。如果直接通过源站IP也不能访问,同时伴随ping源站IP丢包、telnet超时等现象,可判断为是此类原因导致。
参照以下步骤进行排查:
1、查看源站流量、请求量是否有大量增长,同时对比高防IP管理控制台中的监控。如果源站遭到大流量攻击,但高防IP管理控制台显示无异常,则有可能是攻击绕过高防IP直接攻击源站。这种情况,建议您尽快更换源站IP。
2、排除遭受攻击的原因后,可查看源站服务器的进程状态、CPU/内存占用情况、机房带宽的监控情况等。如有异常,建议您联系服务器相关技术人员或机房人员协助排查解决。
3、如果是个别客户端出现502错误,建议您收集客户端的IP和出现异常的时间点,并向服务器提供商售后技术支持进行反映协助排查。