CDN>M联动实现访问加速和业务高可用
场景说明
网站、游戏、视频、直播等客户群体为了实现就近访问源站内容,会将企业应用服务接入CDN加速,同时他们对业务的高可用性也有着非常高的要求,因为CDN本身并不能感知源站IP的运行状态,所以在灾难场景下无法快速将用户流量切换至正常地址上,而全局流量管理(下文简称GTM),则可以帮助企业实现流量负载均衡、访问加速、容灾切换。
解决方案
首先CDN和GTM这两款产品都是通过CNAME域名来为用户提供相应的服务,用户如果将相同子域名同时指向不同的CNAME域名,因为权威DNS是采用轮询的方式应答,所以会导致其中一个产品无法正常使用。但是很多企业的业务场景是既需要实现域名加速,又要保障源站的高可用性,所以面对CDN加速+GTM对源IP容灾切换场景我们建议用户通过串行的方式来设置实现。
原理图

设置方法
步骤概览
1 . 全局流量管理配置
2 . CDN加速配置
3 . 效果验证
准备资源
1 . 准备一个测试域名:test.alidns.com
2 . 创建一个GTM实例
3 . 开通阿里云CDN加速产品
一、 全局流量管理配置
登录 云解析DNS控制台,左侧菜单选择 全局流量管理。
1 . 全局配置

2 . 地址池配置
创建2个地址池,分别为:
地址池名称 | 地址池中的IP地址 | 模式 |
test1 | 1.XX.XX.148 | 智能返回 |
test2 | 2.2.XX.XX | 智能返回 |
创建地址池,并开启健康检查:


3 . 访问策略配置
新增一条访问策略,配置如下:
访问策略名称 | 默认地址池 | 备用地址池 | 解析请求来源 |
全局默认策略 | test1 | test2 | 全局 |

二、 CDN加速配置
1 . 在全局流量管理的全局配置页签下,复制GTM的CNAME接入域名。

2 . 登录 CDN控制台,选择域名管理, 单击 添加域名 按钮。填写加速域名、源站域名。


3 . 加速域名添加完毕后,刚开始状态会显示为审核中、配置中,此时需要等待几分钟,等状态变为 正常运行 后, 再到DNS控制台配置CNAME解析记录。


4 . 添加完CNAME记录后,返回CDN控制台域名管理页面,可以看到CNAME处已配置完成,同时测试解析也已生效。您可以参考 解析生效测试方法。


三、 效果验证
为了便于查看效果,先做个简单的网站搭建,在上述两个地址池中的IP地址上进行了nginx搭建,并在index.html中进行Test1和Test2进行区分修改。
1 . 期望效果:当地址池test1和test2都正常时,GTM的生效地址池和CDN回源请求都使用的是test1地址池。
— | 地址池:test1 | 地址池:test2 |
健康检查状态 | 可用 | 可用 |
GTM生效地址池 | √ | — |
CDN回源请求 | √ | — |
验证方法:
① 在GTM的地址池配置页签下,查看地址池状态:可以看到目前两个地址池都处于可用状态。

② 在GTM的访问策略页签下,可以查看当前GTM的生效地址池是test1。

③ CDN回源请求的测试:在浏览器访问域名,当地址池test1和test2健康状态都可用时,回源请求到了地址池test1中的服务器。

验证结论: 符合预期;可以从上述测试看到当test1和test2地址池都可用时,GTM的生效地址池和CDN回源请求都是到达test1地址池的服务器。
2 . 期望效果:当地址池test1不可用,test2可用时,GTM会将访问流量切换至test2,则CDN回源请求也会变为test2中的服务器。
— | 地址池:test1 | 地址池:test2 |
健康检查状态 | 不可用 | 可用 |
GTM生效地址池 | — | √ |
CDN回源请求 | — | √ |
验证方法:
① 在GTM的地址池配置页签下,查看地址池状态:可以看到目前默认地址池test1不可用。

② 在GTM告警日志页签下,可以看到因为健康检查探测出test1不可用,将解析流量切换至test2。

③ 在GTM的访问策略页签下,可以查看当前GTM的生效地址池是test2。

④ CDN回源请求的测试:在浏览器访问域名,当地址池test1不可用时,由于GTM将访问流量从test1切换到test2,CDN的回源请求也相应的变为test2中的服务器。

验证结论: 符合预期;可以从上述测试看到当默认地址池test1不可用时,GTM的生效地址池和CDN回源请求都是到达test2地址池的服务器。
3 . 期望效果:当默认地址池test1恢复可用,而备用地址池test2不可用时,GTM则会将请求流量从test2切换回test1,同时test2地址池不可用,会进行告警通知。
— | 地址池:test1 | 地址池:test2 |
健康检查状态 | 可用 | 不可用 |
GTM生效地址池 | √ | — |
CDN回源请求 | √ | — |
验证方法:
① 在GTM的地址池配置页签下,查看地址池状态:可以看到目前默认地址池test2不可用。

② 在GTM告警日志页签下,可以看到因为健康检查探测出test1地址池恢复可用,将解析流量切换至test1,同时GTM检测出test2不可用,进行告警通知。

③ 在GTM的访问策略页签下,可以查看当前GTM的生效地址池是test1。

④ CDN回源请求的测试:在浏览器访问域名,可以看到当test1恢复可用时,GTM将解析请求流量从test2切换回test1,CDN的回源请求也相应的变为test1中的服务器。
验证结论: 符合预期;可以从上述测试看到当默认地址池test1恢复可用时,GTM的生效地址池和CDN回源请求都是到达test1地址池的服务器。