记录一次因回源IP被拦截而导致项目出现502错误码无法访问的情况
这件事有了一段时间了,近期受疫情影响及上线项目,更文并不是很多,昨天从老家回到了沈阳,在两端火车站检查的非常严格,向当前奋战在一线的工作者致敬,向公司、社区、村委会上报了本次的车次和座位。
步入正文,阿里云的WAF、CDN、SLL证书这三项很多人都知道,这三者能够结合在一起使用,下面简单的说一下:
1、 域名解析到CDN提供的cname地址上;
2、 将SLL通过CDN模式进行部署到域名上;
3、 在CDN域名配置中开启waf配置;
4、 在CDN域名配置中开启HTTPS配置;
5、 将CDN源站设置为waf回源;
通过这样简单的设置就可以实现通过阿里云waf进行拦截防护、CDN加速、HTTPS加密这三项。
至于这三项的具体作用就不多说了,还是说一下这次事件的经过吧!项目的waf、cdn、https这三项都是我配置的,没有什么问题。后期服务器工作交给运维岗位来完成了,在运维编写的防护模块中添加了拦截操作。功能上没有什么问题,但是在撤掉阿里云的waf时,需要重新设置域名解析的参数信息,在这里说一下刚刚我们说的三者配置是逆向的,需要先将域名解析到waf上面,由waf提供防护工作,将cdn回源添加到waf上面,将https添加到cdn上面。这个模式是没有问题的。但是我们在进行撤销waf时,重新配置后出现了502错误。觉得在配置上面没有问题。只有https的网站是出现502状态码,无法打开的,非https的网站是可以打开的。当时运维也不到什么情况,我也不清楚。联系了阿里云提交工单,但是也没有解决清楚,后期通过直接配置https办法暂时解决问题。
过了一段时间,将这个仔细想了想,又和阿里云的技术人员进行了沟通,查看阿里云技术文档,得到一个点:阿里云CDN存在特定的回源IP,在回源上面没有问题,而到达网站上面出现了问题,那么,我的想法就是被我们自己给拦截了,联系运维人员查看被拦截IP名单,固然发现了特定的几个IP。对这几个进行了添加白名单操作后,不在拦截,网站可以正常访问了。
也是自己才疏学浅,不知道阿里云CDN加速回源IP的事项,本次问题总结如下:
1、 编写拦截功能时需要将部分IP或IP端进行放行,如百度蜘蛛、360蜘蛛、搜狗蜘蛛、头条蜘蛛等,如果存在CDN加速的也需要对此进行放行。
2、 拦截时对频繁请求的IP进行时效性的拦截和放行机制。
3、 对拦截返回状态码需要进行标注,或者重定向到拦截页面,不要无任何标志,导致在判断问题时无法快速断定问题点从而影响业务。