CDN - 访问出现 503 排查

简介: 场景 用户在阿里云做 CDN 加速后,加载 URL 时返回 503 状态码; curl -I http://z2.alx.yas.com/uploads/basedata/images/1fcb73c76821610a6d265af01a10f045.

作者:张医博

场景

用户在阿里云做 CDN 加速后,加载 URL 时返回 503 状态码;

curl -I http://z2.alx.yas.com/uploads/basedata/images/1fcb73c76821610a6d265af01a10f045.png 
HTTP/1.1 503 Service Temporarily Unavailable
Server: Tengine
Content-Length: 0
Connection: keep-alive
Via: cache29.l2cn1828[0,503-256,M], cache7.l2cn1828[10002,0], vcache5.cn627[10025,503-1281,M], vcache5.cn627[10022,10026,0]
X-Swift-Error: forward no peer valid
Age: 0
Ali-Swift-Global-Savetime: 1566887228
X-Cache: MISS TCP_MISS dirn:-2:-2
X-Swift-SaveTime: Tue, 27 Aug 2019 06:27:08 GMT
X-Swift-CacheTime: 1
X-Swift-Error: orig response 5xx error
Timing-Allow-Origin: *
EagleId: 7909f64515668872085932615e

问题排查

第一、客户端可以用 curl、wget 或者浏览器测试,将返回 503 时的 http 响应头保留下来;

curl -I http://z2.alx.yas.com/uploads/basedata/images/1fcb73c76821610a6d265af01a10f045.png --resolve basedata.azoyacdn.com:80:121.9.46.110
HTTP/1.1 503 Service Temporarily Unavailable
Server: Tengine
Content-Length: 0
Connection: keep-alive
Via: cache29.l2cn1828[0,503-256,M], cache7.l2cn1828[10002,0], vcache5.cn627[10025,503-1281,M], vcache5.cn627[10022,10026,0]
X-Swift-Error: forward no peer valid
Age: 0
Ali-Swift-Global-Savetime: 1566887228
X-Cache: MISS TCP_MISS dirn:-2:-2
X-Swift-SaveTime: Tue, 27 Aug 2019 06:27:08 GMT
X-Swift-CacheTime: 1
X-Swift-Error: orig response 5xx error
Timing-Allow-Origin: *
EagleId: 7909f64515668872085932615e

从 CDN 返回的 503 http 响应头可以看到几个重要信息:

1) X-Swift-Error: orig response 5xx error

  • 通过 X-Swift-Error 返回的信息,可以初步判断 503 是因为 CDN 回源后响应的 503;

2) http 返回的 Via 头

  • Via 头含义,从右到左依次是 L1 节点回源字段,vcache5.cn627[10025,503-1281,M], vcache5.cn627[10022,10026,0] ,L2 节点的回源字段 cache29.l2cn1828[0,503-256,M], cache7.l2cn1828[10002,0]
  • 在 L2 的字段段看到 [] 内的 10002 就是回源的超时时间,综合判断可知是因为 L2 回源后,超时未得到原站的响应(比如读、写超时)导致的 503;

第二、固定原站做七层测试

Linux 测试

原站是 80 端口

curl -vo /dev/null "http://z2.alx.yas.com/" -x 原站IP:原站端口

原站是 443 端口

curl -vo /dev/null "http://z2.alx.yas.com/" --resolve "z2.alx.yas.com:原站IP:原站端口"

Windows 测试

1)先编辑

C:\Windows\System32\drivers\etc\hosts

2)在 hosts 中配置原站 IP: 原站IP z2.alx.yas.com
3)浏览器发起 http/https 请求,如果原站 http 端口不是 80 ,浏览器访问时需要在域名后手动加上原站的自定义端口

http://z2.alx.yas.com:8080

第三、测试原站四层的端口,看响应时间是否正常

time telnet 原站IP 原站端口,如果发现四层的端口响应很慢,侧面说明原站七层的应用负载较高,或者服务器负载异常,需要原站自查;

第四、对原站做网络测试

ping 原站IP -c 50 -s 1460 -i 0.1
mtr -n 原站IP

通过以上两个网络测试命令,看下普通的客户端到原站的延迟是否稳定,丢包率是否异常,如果普通的客户端测试到原站延迟、丢包都有异常,那 CDN 回源可能也有问题,发现原站如果网络异常,需要客户先自查下;

第五、以上四点测试均正常,需要 CDN 测进行日志分析,请提交工单到阿里云;

提供如下信息:

1)加载 503 的 URL ,最好能提供报错的完整响应头;
2)客户端 ping 下 CDN 域名看目标的 CDN ;
3)大面积的 503 ,还是个别客户加载 503 ,大面积的问题存在共性;
4)客户端的 IP(获取工具 https://cdn.dns-detect.alicdn.com/https/doc.html),以及大致的错误时间点;

相关文章
|
域名解析 缓存 前端开发
前端性能优化 实际应用cdn 加快静态资源访问
前端性能优化 实际应用cdn 加快静态资源访问
前端性能优化 实际应用cdn 加快静态资源访问
|
边缘计算 缓存 监控
【CDN 排查方案-1】认识 CDN 网络调优
面向不同业务类型的网站,很多人都选择了 CDN 加速来优化自己的网站,目的在于加速网民的体验效果,赢取流量。 在网站调优的过程中,如果正确理解基于 CDN 的网络调优以及正确的配合 CDN 服务方来快速提供调优信息做了详细的讲解, 希望对大家有用,希望对从事 CDN 的人和对网络调优感兴趣的人能有作用。
【CDN 排查方案-1】认识 CDN 网络调优
|
边缘计算 监控 前端开发
利用阿里云Eventbridge在CDN边缘应用程序中访问日志服务SLS
在Web前端领域,追求极致性能是个永恒的话题。这些年的一些新兴理念都是为了提升站点访问性能而提出,无论是Jamstack技术理念或者或者 ESR (边缘渲染),都是Client侧进行性能优化的基础上,进一步拓展到了网络Infra层面,就是我们现在经常讨论的边缘计算。而阿里云的CDN EdgeRoutine 就是为广大客户提供可自由编程的边缘计算能力,我们可以用他来构建边缘节点的网关应用,来访问静态资源或者后端服务。当这个边缘网关在业务上承担的角色越来越重要的时候,我们就对他内部的业务逻辑产生了可观测的诉求,希望能够记录日志到日志服务上,然而日志服务提供的SDK,在ER的环境中暂时不被支持,这个
282 0
|
存储 CDN
jsdelivr cdn大陆挂了不能访问替代方案
jsdelivr cdn大陆挂了不能访问替代方案
1137 0
jsdelivr cdn大陆挂了不能访问替代方案
|
存储 缓存 负载均衡
分布式架构原理--CDN加速静态文件访问
分布式架构原理专题: (演进过程及如何把应用从单机扩展的分布式;CDN加速静态文件访问;系统监控、容灾、存储动态扩容;架构设计及业务驱动分化;CAP\Base理论及其应用)
468 0
分布式架构原理--CDN加速静态文件访问
|
Web App开发 监控 网络协议
抽丝剥茧定位一个CDN访问慢的案例
源站安全策略将CDN回源IP识别为攻击IP进行拦截,CDN回源504触发重试导致访问时间拉长。
328 0
|
网络协议 Linux Android开发
|
安全 应用服务中间件 nginx
CDN页面优化不生效排查遇到的坑
如果源站响应给CDN的数据是Gzip压缩以后的数据会导致CDN的页面优化不生效。本文详细讲述了问题的原因以及排查过程,并讲述了Nginx关于Gzip的压缩配置,同时介绍了CDN作为代理服务,引入了Via header以后对Nginx服务器的影响。
5884 1
CDN页面优化不生效排查遇到的坑
|
存储 缓存 边缘计算
最佳实践:使用阿里云CDN加速OSS访问
用户直接访问OSS资源,访问速度会受到OSS的下行带宽以及Bucket地域的限制。如果通过CDN来访问OSS资源,带宽上限更高,并且可以将OSS的资源缓存至就近的CDN节点,通过CDN节点进行分发,访问速度更快,且费用更低。如果采用动静分离的网站架构,就能够解决海量用户访问的性能瓶颈问题。
1668 0
最佳实践:使用阿里云CDN加速OSS访问
|
弹性计算 监控 Kubernetes
【案例分享】CDN+WAF流量突增排查案例
阿里云CDN结合WAF使用,WAF作为CDN的源站,是较为常见的使用方式,可以充分发挥CDN的分发加速以及WAF的安全防护能力,一般架构为CDN-->WAF-->SLB-->ECS;但复杂的架构往往也会增大问题排查的复杂程度,本文和大家分享一起由于WAF配置问题引发CDN流量异常增长的案例。
1727 0
【案例分享】CDN+WAF流量突增排查案例