公司商城网站是客户访问请求会先到阿里云的CDN在到阿里云的waf防火墙,最后到源站服务器

公司商城网站访问刷新5-6次就会出现 405 Method Not Allowed从字面上的意思理解,很显然是请求方法的类型错误,一般是以GET方式向POST请求网站,但是开发确认接口没有问题,而在本机配置域名hosts到源站服务器ip访问测试并不会出现405,而hosts配置域名到阿里CDN的ip就会出现,只能hosts域名加ip到CDN和waf防火墙排查

排查waf防火墙的日志发现报错的URL链接访问,在1天时间内的并发访问量并不大,1天的访问量正常的在14461左右 ,405报错的请求在3856排除网站被攻击的可能

根据以往网站url被攻击和爬虫爬取资料,1小时内URL都是到达几十万到几百万之间。1天可以到达上千万的访问请求

宝塔mysql binlog日志 宝塔数据库405 not allowed_宝塔mysql binlog日志

宝塔mysql binlog日志 宝塔数据库405 not allowed_访问量_02

宝塔mysql binlog日志 宝塔数据库405 not allowed_服务器_03

根据自己的公司的外网ip和关键字“HTTP/1.1” 405源站服务器过滤nginx日志一堆访问405的报错。

宝塔mysql binlog日志 宝塔数据库405 not allowed_服务器_04

在访问测试出现405,根据CDN的返回的https响应头里面的ip:121.12.173.243,在waf防火墙检查日志并没有查看到报错的405记录,而此时已经测试过hosts域名ip到cdn会出现405的报错,而hosts域名ip到源站服务器不会出现

通过ping阿里云的防火墙的CNAME拿到waf防火墙的ip,直接hosts域名到waf防火墙的ip依旧会出现405 Method Not Allowed,而到hosts源站服务器并不会出现已经排除源站服务器nginx和代码问题,下工单联系阿里云工程师说明情况,阿里云工程师说日志已经到我们源站,说明请求有到源站建议我们排查源站服务器nginx配置,nginx配置排查也报错日志排查没任务问题,这个405是在node上面返回给nginx的,很多借口都是反向代理了node,最后让开发查询nodeJS的日志发现出现大量防火墙拦截的信息提示,根据请求id发送给阿里云工程师,确认了是后端java某个api接口域名,加了阿里云日志和部分waf防火墙服务器ip的黑名单所造成的405,清空黑名单恢复正常。注:黑名单是阿里云万检测到访问量搞,属于攻击行为才被添加进去

宝塔mysql binlog日志 宝塔数据库405 not allowed_访问量_05

清空api域名的黑名单后恢复 

宝塔mysql binlog日志 宝塔数据库405 not allowed_宝塔mysql binlog日志_06

 

 

 

宝塔mysql binlog日志 宝塔数据库405 not allowed_服务器_07

宝塔mysql binlog日志 宝塔数据库405 not allowed_服务器_08