发现问题:
这段时间换了CDN我老遇到这样的问题,网站莫名其妙显示连接重置中,然后又正常显示,在测速网站中也会显示我网站部分节点是不能正常使用的,在F12控制台也会显示 net::ERR_HTTP2_PROTOCOL_ERROR
这让我一时找不到问题的解决办法,排查了自己服务器的连接问题后,我开始求助腾讯云的客服
客服也一时半会解决不了问题,然后联系工程师排查
排查的结果就是:CDN没问题,建议你换个工具。
好家伙,解决不了问题就解决发现问题的工具是吧…
发现原因:
后来我在WAF拦截的IP中发现拦截的IP貌似都是国内,都没有国外IP,于是我把拦截的IP在CDN回源IP目录查询
果然,IP正是腾讯云的IP,这让我恍然大悟。
如果一个IP攻击你的服务器,WAF会记录下攻击的IP,但是在WAF前面有个CDN,所以WAF记录的其实是CDN的IP,导致CDN的IP被临时封禁300秒,其他用户如果恰巧使用这个IP,就会出net::ERR_HTTP2_PROTOCOL_ERROR
找到原因,接下来解决问题的办法就很简单了:只需要知道用户真实的IP地址就行了
咨询客服后,客服给我一个方法:
地址我贴在这了:https://cloud.tencent.com/document/product/228/45078
解决问题:
如果你也是腾讯的CDN,默认则在回源的头部开启了X-Forwarded-For(真实客户端 IP)和 X-Forwarded-Proto(真实客户端请求协议)
则只需要获取CDN回源IP目录的所有IP导入到宝塔WAF白名单中
WAF白名单在 全局设置 – 防CC攻击 – IP白名单 – 添加
再依次开启网站的使用CDN
使用CDN 在站点设置 – 点击任意一个站点 – 把使用CDN的状态开启
PS:记得看一眼设置里面有没有X-Forwarded-For这个,不同的CDN的真实IP header 关键词不一样,详情请自行百度或咨询客服
问题解决!
暂无评论内容