CDN联动GA实现跨境访问加速
应用场景
使用CDN加速域名访问时,如果选择的服务范围与源站的位置在不同的国家,客户端访问节点无缓存的资源时,CDN节点回源受跨境网络影响,加速效果不太明显,甚至回源失败。例如:域名的服务范围为中国大陆境外,源站在中国大陆,此时所有客户端请求均会调度到中国大陆境外的节点,节点回源时就可能会受到跨境网络影响,导致加速效果不明显或访问失败。
因此,当您的跨国业务需要CDN加速时,可以联动华为云全球加速(Global Accelerator,GA)服务,依托GA服务的跨境访问能力,解决CDN跨境回源的相关痛点,实现动静态内容全面加速。
方案概述
当终端用户发起访问请求时,会首先通过CDN查找对此域名响应速度较快的CDN节点,并查询此节点是否有缓存终端用户请求的内容。如果CDN节点有缓存用户所需资源,直接将资源返回给用户;如果CDN节点无缓存,则回源(GA)请求资源,由GA服务实现跨境访问并返回资源给CDN节点,CDN节点将资源返回给用户并缓存。

资源成本与规划
本实践以加速域名为www.example.com,源站在中国大陆(IP地址:192.168.1.1),CDN加速域名的“服务范围”为“中国大陆境外”为前提。
| 资源 | 资源说明 | 数量 | 费用 | 
|---|---|---|---|
| GA加速实例 | 按照每个全球加速实例的创建时长收费。 
 | 1 | 请参见全球加速价格详情。 | 
| GA数据传输 | 通过全球加速服务转发的流量费用,按GB收费。 
 | 根据实际转发的流量 | |
| 公网解析记录 | 线路类型选择“全网默认”,解析记录值配置为CDN服务的CNAME地址。 | 1 | 免费 | 
| CDN加速域名 | 服务范围:中国大陆境外 源站类型:源站IP 源站地址:全球加速实例分配的加速IP地址,即Anycast IP。 | 1 | 请参见内容分发网络价格详情。 | 
流程简介

步骤一:跨境申请
根据中华人民共和国工业和信息化部(简称工信部)相关法律、行政法规规定,中国大陆只有三大运营商具备跨境业务运营资质。所以涉及跨中国大陆访问的业务场景,都需要通过跨境资质审核。
- 进入全球加速跨境申请管理界面。
- 在跨境申请管理页面,单击“跨境申请”。
    
    图1 跨境申请  
- 在跨境云服务在线申请页面,根据提示配置相关参数,并上传相关材料。
- 单击“立即申请”。
步骤二:购买全球加速实例
跨境资质申请完成后,购买全球加速实例。
- 登录全球加速控制台。
- 在全球加速页面,单击“购买全球加速服务”。
    图2 购买全球加速实例  
- 根据界面提示配置相关参数,“加速区域”选择“中国大陆以外”,详细请参见表2。
    图3 创建全球实例  表2 创建全球加速实例 参数 说明 名称 用户将要创建的全球加速实例的名称。 只能由中文、英文字母、数字、中划线组成。 长度范围:1-64个字符。 企业项目 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。 您可以使用已有企业项目,也可以新建企业项目。 加速区域 加速区域指需要进行访问加速的区域。 支持选择“中国大陆以外”或“中国大陆”,默认选择“中国大陆以外”。 本实践中请选择“中国大陆以外”。 IP地址类型 全球加速实例的地址类型。 “加速区域”选择“中国大陆”时,支持选择“IPv4”或“IPv4+IPv6”。 默认:IPv4。 标签 全球加速的标识,包括键和值。可以为全球加速实例创建20个标签。 说明:如果已经通过TMS的预定义标签功能预先创建了标签,则可以直接选择对应的标签键和值。 预定义标签的详细内容,请参见预定义标签简介。 如您的组织已经设定全球加速服务的相关标签策略,则需按照标签策略规则为加速实例添加标签。标签如果不符合标签策略的规则,则可能会导致加速实例创建失败,请联系组织管理员了解标签策略详情。 描述 全球加速实例描述。 长度范围:不超过255个字符。 
- 单击“下一步”,进入监听器配置页面。
步骤三:配置监听器
创建全球加速实例后,您需要为全球加速实例配置监听器。监听器负责监听连接请求,并根据流量转发策略将请求流量分发至终端节点。
 
   | 参数 | 说明 | 
|---|---|
| 名称 | 监听器名称。 只能由中文、英文字母、数字、中划线组成。 长度范围:1-64个字符。 | 
| 前端协议 | 客户端与监听器建立流量分发连接的协议。 取值范围:TCP、UDP。 | 
| 前端端口 | 客户端与监听器建立流量分发连接的端口。 端口取值在1-65535之间,端口范围用“-”连接,多个端口或端口范围以逗号隔开。 例如:1-10,11-50,51,52-200 | 
| 客户端亲和性 | 会话保持。 支持选择“关闭”或“按源IP保持会话”。 TCP和UDP协议仅支持“按源IP保持会话”。 按源IP保持会话:基于源IP地址的简单会话保持,将请求的源IP地址作为散列键(HashKey),从静态分配的散列表中找出对应的服务器。即来自同一IP地址的访问请求会被转发到同一台后端服务器上进行处理。 | 
| 标签 | 监听器的标识,包括键和值。可以为监听器创建20个标签。 
          说明: 
          如果已经通过TMS的预定义标签功能预先创建了标签,则可以直接选择对应的标签键和值。 预定义标签的详细内容,请参见预定义标签简介。 如您的组织已经设定全球加速服务的相关标签策略,则需按照标签策略规则为监听器添加标签。标签如果不符合标签策略的规则,则可能会导致监听器创建失败,请联系组织管理员了解标签策略详情。 | 
| 描述 | 监听器描述。 长度范围:不超过255个字符。 | 
步骤四:配置终端节点组和终端节点
根据界面提示配置终端节点组和终端节点的相关参数,终端节点组区域选择“上海一”,详细请参见表4。
| 类型 | 参数 | 说明 | 
|---|---|---|
| 终端节点组 | 名称 | 终端节点组名称。 
 | 
| 区域 | 终端节点组所属区域。本实践选择“上海一” | |
| 描述 | 终端节点组描述。 长度范围:不超过255个字符。 | |
| 流量调度 | 配置到不同终端节点组的流量比例。 如果增加流量调度比例,将有更多的请求分发到此终端节点组。 如果将流量调度比例设置为0,则不会将任何请求分发到此终端节点组。 取值范围为:[0-100]。 
         说明: 
         如果监听器中有多个终端节点组,分配流量时优先选择时延最低的终端节点组,并按照该终端节点组的流量调度值分配流量,然后再向其他终端节点组分配其余流量。 | |
| 终端节点 | 终端节点充当客户端的接触点,加速实例跨正常运行的终端节点分发传入流量。 本实践填入实际的源站地址(192.168.1.1)。 | |
| 健康检查配置 | 是否开启 | 开启或者关闭健康检查。 关闭健康检查可能会导致业务请求转发至异常的后端服务器。 | 
| 前端协议 | 健康检查目前支持选择TCP协议或UDP协议。 默认:TCP协议。 | |
| 前端端口 | 健康检查端口号。 取值范围:[1,65535]。 | |
| 高级配置 | ||
| 检查间隔(秒) | 每次健康检查响应的最大间隔时间。 取值范围:[1-60]。 | |
| 超时时间(秒) | 每次健康检查响应的最大超时时间。 取值范围:[1-60]。 | |
| 最大重复次数 | 健康检查最大的重试次数。 取值范围:[1-10]。 | |
步骤五:添加CDN加速域名
- 登录CDN控制台。
- 在左侧导航栏选择,进入域名管理页面。
- 在域名管理界面,单击“添加域名”,配置相关参数。
    - 加速域名:www.example.com。
- 服务范围:中国大陆境外。
- 业务类型:网站加速。
- 源站配置:
      - 回源方式:HTTP。
- 源站类型:源站IP。
- 源站地址:全球加速Anycast IP。
- 回源端口:与步骤三:配置监听器中的前端端口保持一致。
- 回源HOST:默认为加速域名。
 图5 添加域名  
 
详细参数解释请参见添加CDN加速域名。
步骤六:配置DNS解析
添加加速域名后,CDN会自动生成一条CNAME域名。加速域名在CDN服务中获得的CNAME域名不能直接访问,必须在加速域名的域名服务商处配置CNAME记录,将加速域名指向CNAME域名,访问加速域名的请求才能转发到CDN节点上,达到加速效果。
本文以配置华为云DNS解析为例,请按照以下步骤操作:
- 进入公网域名列表页面。
- 在“公网域名”页面的域名列表的“域名”列,单击域名的名称。
- 在页面右上角,单击“添加记录集”。
- 在“添加记录集”页面,根据界面提示为域名添加CNAME记录,下表中未提到的参数可保持默认值。 
    表5 记录集参数说明 参数 参数说明 本实践取值 主机记录 解析域名的前缀。 例如创建的域名为“example.com”,其“主机记录”设置包括: WWW 类型 记录集的类型。 CNAME-将域名指向另外一个域名 线路类型 解析的线路类型用于DNS服务器在解析域名时,根据访问者的来源,返回对应的服务器IP地址。 全网默认 TTL(秒) 解析记录在本地DNS服务器的缓存时间,以秒为单位。 默认值:300秒 取值范围为:1~2147483647 如果您的服务地址经常更换,建议TTL值设置相对小些,反之,建议设置相对大些。 本实践中该参数保持默认配置。 5分钟,即300s 值 需指向的域名。 CDN分配的CNAME域名 
- 单击“确定”。
- 验证CNAME配置是否生效
    打开Windows操作系统中的cmd程序,输入如下指令: nslookup -qt=cname 加速域名 本实践中加速域名为“www.example.com”。如果回显CDN分配的CNAME域名,则表示CNAME配置已经生效。 
配置验证
在本实践中,在海外国家/地域使用windows电脑测试访问上海一加速效果,具体如下:
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http[s]://<应用服务域名>[:<端口>]"
    
 
    - 端口:应用对外发布服务的端口号。
- time_connect:连接时间。从开始建立TCP到连接完成所用的时间,单位为秒。
- time_starttransfer:开始传输时间。从客户端发出请求到后端服务器响应第一个字节所用的时间,单位为秒。
- time_total:连接总时间。从客户端发出请求到后端服务器响应会话所用的时间,单位为秒。
 
    