0x00
现在的项目一直在做微信公众号的业务,因为经常有推文,会有短时大流量的访问,就使用的腾讯云的CDN加速来减少源站的压力。在昨天下午的时候发现很多请求出现504点情况。因为我们前端采用腾讯云的LB去做集群,根据URL去转发到后端服务器去处理。第一时间检查了了结群的服务器,没发现有异常的服务器。再排查了一遍LB的设置,检查了后端服务中间件的超时时间设置。初步判断为腾讯云的CDN出了问题。
0x01
拿浏览器测试了一下,刷新页面资源随机返回504,同一资源会50%左右的概率返回504。因为我们配置的http跟https,发现http的都是正常返回200的,就是https的不正常。再拿Fiddler来模拟请求,还是50%的概率返回504。郁闷了半天,都没发现问题就是莫名的返回504,最后之间修改电脑的Hosts文件,把域名直接指向腾讯云LB后,都正常的了,于是提交了工单。
0x02
大概过了半个小时腾讯云工程师回复测试其中一个节点暂时没出现504。需要测试下我这边的异常节点。可以通过ping去获取CDN节点。
测试后回复工单
腾讯云工单回复CDN对于504返回码是直接透传的(为源站返回),同时这边进行绑源测试,直接访问源站也是有出现504的情况,请您核实源站情况。
我们修改本机hosts文件直接指向我们的回源ip,就不会出现504的情况。
您好,您可以这样,下载一个mtr工具,然后输入您的域名(接入cdn的)然后抓个400个包左右,然后截图,重复以上的步骤,域名绑定您源站host然后抓400个包左右看是否有丢包。
然后我下载了WinMTR分别测试的,启用CDN情况:
直接回源:
核实您源站是LB而LB后端机器是个机器比较多的集群,您看下LB监控有出现异常状态的机器吗?
LB后端的机器是正常的,目前是深圳的用户反馈出现504异常。我用南京联通的网络测试没有出现504.
深圳用户访问的节点我这里刚刚也测试了下,通过节点访问也是没问题的,504这种错误码CDN已经规避了所有出现这种问题的可能,只会透传源站返回的状态,我这里看了下回源日志确实有几百次504,但都是源站返回的。因为您源站是个lb这里不太好判断具体那台机器给返回的。
解析记录添加CDN时候的接口测试:
目前我们已经修改了解析记录为A记录,直接解析到LB上,测试结果:
按照目前的情况来看,我们只能停用CDN了…
0x03
您添加CDN的时候是在深圳测试测试的吗?其他地区有反馈吗?
我们的CDN很早就已经添加了,只是昨天下午开始深圳地区反馈很多请求出现504,其他地区还没有反馈异常。
您这个是用什么测试的?有更像的信息吗?确实很奇怪,我们这面504是透传源站的,但是您直接访问源站又没问题。肯定那块有问题,还需要详细查下。
这个是我用Fiddler直接请求接口地址的,解析了CDN就会出现504的情况,我们的网站是支持http跟htts的目前就是htts的出现504的情况,http都是正常的。这个借口地址,我跟了一下整过请求的过程,请求到LB后,LB做了URL转发 /front/ 只交给后端的一台去处理的。后端的的服务器的日志我排查了一遍,没发现504的情况。目前请求返还的504页面是LB返回的页面。然之间请求LB却不会出现504情况。
0x04
目前还在等腾讯云工程师定位问题。后续定位到问题再更新~