把iconfront的资源放cdn访问_[FE 资源链路] 3 - CDN返回资源异常 / 分析 / 解决

c5aec797db2a6d179096e45e2973c16b.png

[FE 资源链路] 1 - 资源访问优化(全量) - CDN加速 / 负载均衡 / 缓存刷新 预热

[FE 资源链路] 2 - 资源访问优化 - 补丁 + 本地缓存

[FE 资源链路] 3 - CDN返回资源异常 / 分析 / 解决

[FE 链路] 4 - 针对整个链路 性能优化

[FE 链路] 5 - 浏览器渲染机制 / reflow repaint / async defer

[FE 链路] 6 - 前端性能指标

0. 常见问题

  • DNS解析失败
  • 回源被劫持

3d88607590a1e03459a99d4678e6054f.png

1. 遇到的问题: 某地区部分用户访问失败

【背景】某地区 在某安卓app 的用户能访问访问不了资源

【分析】DNS解析失败。之前说到过DNS解析权 通过 CNAME,交给CDN专用DNS服务器
 - CNAME: a.com => b.com => 全局负载均衡IP
 - b.com的ip指向有部分失效,某些安卓或 IOS APP, 
   因为在本地之前缓存过域名解析的ip, 该 全局负载均衡IP已失效,导致域名解析失败。

【解决】我们无法推进app去改,那就改变请求链路
 - 不走CDN链路,因为DNS解析有问题。
 - 直接走我们自己服务端的网关,服务直接向源站 (华为云/腾讯云....) 发起请求,返回资源。

 优点: 这个链路都是保证https。不存在被篡改问题。也不存在解析出错问题。
 缺点: 需要评估服务端的能承受的QPS流量是多少。

25e881a0419dcc7fb09d99fe692f1c1d.png

2. 遇到的问题: CDN加速节点的信息被篡改

  • CDN缓存阶段链路 是可以通过 https 或 http 访问的。
  • 回源是: http访问的。
【背景】返回信息一半 或 不是我服务的资源 或 旧资源
【分析】
 - 旧资源: 可能是CDN 缓存预热或缓存失效。
 - 返回信息一半 或 不是我服务的资源: 资源被篡改了。。。。

【为什么会被篡改】
 - CDN缓存阶段链路 是可以通过 https 或 http 访问的。
 - 回源是: http访问的。
 - 存在问题: 回源过程中,被劫持。

339b4b3bb80780b5ab91cb1e34aabe84.png

3. 访问资源链路

  • CDN链路
  • 全链路https

3.1 - CDN链路

  • http和https共存,但回源是http, 有被劫持风险。
  • 可利用CDN节点加速访问。

17b284fe1557b37c19fc2d30fa301bb5.png

3.2 - 全链路https, 无劫持风险

  • 但需要预估自己网关承载能力, 该方案是通过自己的服务 从源站 请求返回资源。
  • 可作为异常兜底 和 快速容错方案。

e46ea237edceb59a1d72c4df8b75df41.png

4. Recap

  • 如何发现CDN问题? - CDN请求成功率下降 / 异常上升, 需要业务层实时监控方案。
  • 如何排查路径? 是DNS 解析失败? / 缓存节点问题? / 回源路上被劫持?
  • 如何快速容错? HTTPS访问不会被劫持 / 已缓存在本地的资源暂时不会被劫持的。
  • 如何快速排查? 资源访问 (DNS解析)/ 资源内容返回是否异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值