接入CDN后的常见故障排查方案

接入CDN后的常见故障排查方案,第1张

说几个cdn比较常见的案例:

1、接入cdn白屏,需要看下返回码,具体的这里不多说,因为好多都是云厂商自己定义的,经典的2xx,3xx,4xx,5xx大家可以自行去查询

需要关注下客户的带宽是否不够,配置过低等

看下客户的php配置文件是不是memory_limit设置的过小,过小容易造成后台登陆或者其他动态页面返回5xx错误等

根据返回码判断,是不是使用了https,建议不要全站使用跳转,静态的使用http,动态的使用https(这样也可以更好的加速)

2、网站接入cdn后,排版错乱

需要看下是是否使用了https,如果使用可同第一个问题的第三个解决方案,动静请求使用不同的协议

看下是否是缓存策略设置的问题,可以修改缓存策略为:all=0,其他静态设置缓存

3、网站接入cdn后访问不了

经典的三步走,先看源,再看节点,再看链路

看源很多种方法,绑定host,curl等

看节点,使用curl,结合后台工具,关注下是否是节点波动,上线下线等

看链路,使用mtr和traceroute正反向测试,关注三个地方,本地网,公网(运营商),服务器本地网络等

如果你是看CDN的东西看到的这句话,那么我可以来解释一下流程。“全局负载均衡技术将用户的访问指向离用户最近的工作正常的流媒体服务器上”。首先我们要明确几件事:

1、在CDN的案例图中,其实B和C不会在不同的城域。如果在不同的城市,一般会在那个地域也放置一个反向代理服务器或反向代理节点。B和C为同一地域,A为B、C的负载均稀器或调度器;

2、CDN的部署里,为避免单点故障或应对业务峰值,A并不是单台服务器,一般由多台服务器进行调度,一般采用LVS进行七层的负载和转发。通过LVS的负载均衡策略将业务转发至B和C,负载均衡策略可以进行设置,如轮询,权重轮询、随机等等;

3、CDN一般由DNS来做为用户流量调度,也是CDN的核心,即将用户的请求调度至距用户最近的节点,例如节点D,节点D通过负载均衡策略将请求分发至节点D后端的业务服务器E和F。

4、你看到的这句话,是指DNS层面的调度。

流媒体业务使用CDN的发布业务的前提和流程如下:

1、在流媒体业务服务器域名注册商修改域名的CNAME记录为CDN服务厂商的域名;(这一步是使用CDN的首要条件)

2、CDN服务厂商为业务设置不同地域的缓存节点,如北京、上海、美国等

3、不同地域设置的缓存节点具有不同的IP地址地址池,并且该节点内拥有业务调度器(LVS的DR)及真正的业务缓存服务器,缓存服务器通过类似Squid等程序定期缓存流媒体业务服务器的视频信息及网页信息,每隔一段时间进行更新请求;

4、用户通过DNS调度请求到某一节点时,该节点通过LVS技术将用户的请求调度至节点内某一以缓存节点进行处理,并返回结果给用户;(可参照LVS的工作模式)

5、当缓存节点有用户请求的内容时,将直接返回内容给用户,当缓存节点发现请求的内容不存在时,会主动返回流媒体业务的源服务器进行内容请求,并将结果缓存至缓存节点。

6、

用户最终拿到缓存节点上的视频内容及信息,由于通过DNS调度至用户最近的节点,通过LVS调度至最快最优的服务器进行处理,故加快了用户访问网站及视频

的速度。(视频的加速其实还有一种技术叫cache技术,即将视频提前下载到距用户最近的节点,用户看起来等于在局域网中查看)

DNS和CDN调度的流程如下:

1、用户访问流媒体业务的域名如“www.abc.com"

2、www.abc.com的cname记录为CDN服务厂商的域名,如www.abc.com.cdncache01.com;

3、用户的请求被转发至www.abc.com.cdncache01.com进行处理,即触发用户对www.abc.com.cdncache01.com域名的解析处理。DNS解析流程见图“DNS解析流程图”

4、

www.abc.com.cdncache01.com域名在权威服务器里配置的记录为多条的,即智能DNS,可参考DNSPOD,即一个域名可以根据地

域的不同配置不同的解析策略,源地址为北京联通的,即解析为用户指定的联通服务器IP地址,源地址为广州移动的,即解析的IP地址为用户指定广州移动的

IP地址。

5、DNS通过AnyCast技术进行三层负载均衡,类似于OSPF的等价路由,如8.8.8.8这个地址实际为一个AnyCast地

址,即谷歌全球的递归DNS服务器均使用8.8.8.8作为Global

DNS地址,当用户通过8.8.8.8请求域名解析时会带上自己的DNS服务器地址进行请求,即8.8.8.8会查询请求过来的客户端地址是哪里的IP地

址,如果是北京联通的,即将请求解析为北京联通的一个IP地址或解析为北京联通的一个负载均衡节点CNAME域名。

6、为了达到更精准备的DNS

解析调度,谷歌还研发了edns-client-subnet,即在DNS授权、递归、缓存上均支持该Edns协议,支持该协议后,用户在请求DNS域名

解析时,会带上自己客户端的源IP地址放在请求包里,而非客户端配置的DNS服务器IP地址。这样就有效的避免了用户使用Global

DNS服务器时不能调度精准的问题。(有关DNS授权、递归等问题可以参照RFC 1034和1035)

7、按照以上流程用户请求www.abc.com.cdncache01.com,会得到一个距离用户上网所在地域最近的一个CDN缓存节点的IP地址即楼主图中的反向代理服务节点。假设IP地址为1.2.3.4。

8、用户请求1.2.3.4的流媒体业务,节点1.2.3.4通过LVS及其它负载均衡技术将用户的请求分发布该节点内最优最快的缓存服务器,如服务器E,IP地地址为192.168.1.4,即由192.168.1.4进行业务处理。

9,服务器192.168.1.4直接将结果返回给用户。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/90512.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-06
下一篇2023-03-06

发表评论

登录后才能评论

评论列表(0条)

    保存