
# CDN联动GA实现跨境访问加速
#### 前提条件
- 已经按照[使用限制](https://support.huaweicloud.com/productdesc-cdn/cdn_01_0068.html)准备好需要接入的域名。
- 已[开通CDN服务](https://support.huaweicloud.com/drawer-cdn/cdn_drawer_01014.html)。
 
#### 应用场景
使用CDN加速域名访问时，如果服务范围是中国大陆境外，而源站的位置在中国大陆，此时所有客户端请求均会调度到中国大陆境外的节点，节点回源时就可能会受到跨境网络影响，导致加速效果不明显或访问失败。此时，可以联动华为云全球加速（Global Accelerator，GA）服务，依托GA服务的跨境访问能力，解决CDN跨境回源的相关痛点，实现动静态内容全面加速。
#### 方案概述
当终端用户发起访问请求时，会首先通过CDN查找对此域名响应速度较快的CDN节点，并查询此节点是否有缓存终端用户请求的内容。如果CDN节点有缓存用户所需资源，直接将资源返回给用户；如果CDN节点无缓存，则回源（GA）请求资源，由GA服务实现跨境访问并返回资源给CDN节点，CDN节点将资源返回给用户并缓存。
![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000002411741740.jpg "点击放大")
#### 资源成本与规划
本实践以加速域名为www.example.com，**源站在中国大陆**（IP地址：192.168.1.1），CDN加速域名的"服务范围"为"中国大陆境外"为前提。
本节介绍最佳实践中资源规划情况，包含以下内容：
表1CDN联动GA实现跨境访问加速的资源成本与规划 
| 资源      | 资源说明                                                                                                                                                                                                                                                                                           | 数量        | 费用                                                                         |
|:---|:---|:---|:---|
| GA加速实例  | 按照每个全球加速实例的创建时长收费。 - **按小时计费**，创建时长不满1小时按1小时收费。  - 实例费=实例单价\*创建时长             | 1         | 请参见[全球加速价格详情](https://www.huaweicloud.com/pricing.html#/ga)。               |
| GA数据传输  | 通过全球加速服务转发的流量费用，**按GB收费**。 - 从一个全球加速接入点到一个应用部署区域之间的流量，定义流量大的方向为主方向，按照每条流量的主方向收费。  - 数据传输费=流量单价\*使用量   | 根据实际转发的流量 | 请参见[全球加速价格详情](https://www.huaweicloud.com/pricing.html#/ga)。               |
| 公网解析记录  | 线路类型选择"全网默认"，解析记录值配置为CDN服务的CNAME地址。                                                                                                                                                                                                                                                            | 1         | 免费                                                                         |
| CDN加速域名 | **服务范围**：中国大陆境外 **源站类型**：源站IP **源站地址** ：全球加速实例分配的加速IP地址，即**Anycast IP**。                                                                                                                                                          | 1         | 请参见[内容分发网络价格详情](https://www.huaweicloud.com/pricing/calculator.html#/cdn)。 |
   
#### 流程简介
![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000002411739308.png)
#### **步骤一：** **跨境申请**
根据中华人民共和国工业和信息化部（简称工信部）相关法律、行政法规规定，中国大陆只有三大运营商具备跨境业务运营资质。所以涉及跨中国大陆访问的业务场景，都需要通过跨境资质审核。
1. 进入[全球加速跨境申请管理](https://console.huaweicloud.com/ga/?locale=zh-cn#/cross-border)界面。
2. 在跨境申请管理页面，单击"跨境申请"。 进入中国联通跨境云服务在线申请页面。
   图1跨境申请   
   ![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000001819086281.png "点击放大") 
3. 在跨境云服务在线申请页面，根据提示配置相关参数，并上传相关材料。
4. 单击"立即申请"。
 
#### **步骤二：购买全球加速实例**
跨境资质申请完成后，购买全球加速实例。
1. 登录[全球加速控制台](https://console.huaweicloud.com/ga/?locale=zh-cn#/)。
2. 在全球加速页面，单击"购买全球加速服务"。
   图2购买全球加速实例   
   ![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000002434019318.png "点击放大") 
3. 根据界面提示配置相关参数，"加速区域"选择"中国大陆以外"，详细请参见[表2]。
   图3创建全球实例   
   ![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000002445567361.png "点击放大")
    表2创建全球加速实例 
   | **参数** | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|
   | 名称     | 用户将要创建的全球加速实例的名称。 只能由中文、英文字母、数字、中划线组成。 长度范围：1-64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 企业项目   | 企业项目是一种云资源管理方式，企业项目管理服务提供统一的云资源按项目管理，以及项目内的资源管理、成员管理。 您可以使用已有企业项目，也可以新建企业项目。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 加速区域   | 加速区域指需要进行访问加速的区域。 支持选择"中国大陆以外"或"中国大陆"，默认选择"中国大陆以外"。 **本实践中请选择"中国大陆以外"。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | IP地址类型 | 全球加速实例的地址类型。 "加速区域"选择"中国大陆"时，支持选择"IPv4"或"IPv4+IPv6"。 默认：IPv4。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | IP地址池  | 当"IP地址类型"选择"IPv4"时，需要配置该参数。 选择全球加速实例的接入IP地址，支持华为云自动分配IP或自带公网IP地址。 - 一般情况下，默认使用华为云IP地址池中的静态IP地址作为全球加速实例的接入IP，即华为云自动分配IP。  - 当用户需要使用自带公网IP地址（BYOIP）作为全球加速实例的接入IP时，可以[提交工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/serviceTickets)申请开通。   |
   | 创建方式   | "IP地址池"选择用户的自带公网IP地址时需要配置该参数。 选择全球加速实例接入IP的分配方式，支持选择"自动分配"或者"手动分配"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | IP地址   | "创建方式"选择"手动分配"时，需要配置该参数。 为全球加速实例指定具体的接入IP地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 标签     | 全球加速的标识，包括键和值。可以为全球加速实例创建20个标签。 说明： 如果已经通过TMS的预定义标签功能预先创建了标签，则可以直接选择对应的标签键和值。 预定义标签的详细内容，请参见[预定义标签简介](https://support.huaweicloud.com/usermanual-tms/zh-cn_topic_0056266269.html)。 如您的组织已经设定全球加速服务的相关标签策略，则需按照标签策略规则为加速实例添加标签。标签如果不符合标签策略的规则，则可能会导致加速实例创建失败，请联系组织管理员了解标签策略详情。                                                                                                                                                                                                                                                                         |
   | 描述     | 全球加速实例描述。 长度范围：不超过255个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
      
   
4. 单击"下一步"，进入监听器配置页面。
 
 #### **步骤三：配置监听器**
创建全球加速实例后，您需要为全球加速实例配置监听器。监听器负责监听连接请求，并根据流量转发策略将请求流量分发至终端节点。
根据界面提示配置监听器的相关参数，详细请参见[表3]。
图4添加监听器   
![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000002412128090.png "点击放大")
 表3添加监听器 
| **参数** | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|
| 名称     | 监听器名称。 只能由中文、英文字母、数字、中划线组成。 长度范围：1-64个字符。                                                                                                                                                                                                                                                                                                                                                                               |
| 前端协议   | 客户端与监听器建立流量分发连接的协议。 取值范围：TCP、UDP。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 前端端口   | 客户端与监听器建立流量分发连接的端口。 端口取值在1-65535之间，端口范围用"-"连接，多个端口或端口范围以逗号隔开。 例如：1-10，11-50，51，52-200                                                                                                                                                                                                                                                                                                                                   |
| 客户端亲和性 | 会话保持。 支持选择"关闭"或"按源IP保持会话"。 TCP和UDP协议仅支持"按源IP保持会话"。 按源IP保持会话：基于源IP地址的简单会话保持，将请求的源IP地址作为散列键（HashKey），从静态分配的散列表中找出对应的服务器。即来自同一IP地址的访问请求会被转发到同一台后端服务器上进行处理。                                                                                                                                                                        |
| 标签     | 监听器的标识，包括键和值。可以为监听器创建20个标签。 说明： 如果已经通过TMS的预定义标签功能预先创建了标签，则可以直接选择对应的标签键和值。 预定义标签的详细内容，请参见[预定义标签简介](https://support.huaweicloud.com/usermanual-tms/zh-cn_topic_0056266269.html)。 如您的组织已经设定全球加速服务的相关标签策略，则需按照标签策略规则为监听器添加标签。标签如果不符合标签策略的规则，则可能会导致监听器创建失败，请联系组织管理员了解标签策略详情。 |
| 描述     | 监听器描述。 长度范围：不超过255个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
#### **步骤四：配置终端节点组和终端节点**
根据界面提示配置终端节点组和终端节点的相关参数，**终端节点组区域选择"上海一"** ，详细请参见[表4]。
 表4添加终端节点组和终端节点 
| **类型** | **参数**  | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| 终端节点组  | 名称      | 终端节点组名称。 - 每个监听器下每个区域只允许关联一个终端节点组。  - 只能由中文、英文字母、数字、中划线组成。  - 长度范围：1-64个字符。                                                                                                                        |
| 终端节点组  | 区域      | 终端节点组所属区域。**本实践选择"上海一"**                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 终端节点组  | 描述      | 终端节点组描述。 长度范围：不超过255个字符。                                                                                                                                                                                                                                                                                                                                                                                             |
| 终端节点组  | 流量调度    | 配置到不同终端节点组的流量比例。 如果增加流量调度比例，将有更多的请求分发到此终端节点组。 如果将流量调度比例设置为0，则不会将任何请求分发到此终端节点组。 取值范围为：\[0-100\]。 说明： 如果监听器中有多个终端节点组，分配流量时优先选择时延最低的终端节点组，并按照该终端节点组的流量调度值分配流量，然后再向其他终端节点组分配其余流量。 |
| 终端节点组  | 终端节点    | 终端节点充当客户端的接触点，加速实例跨正常运行的终端节点分发传入流量。 本实践填入实际的源站地址（192.168.1.1）。                                                                                                                                                                                                                                                                                                                                                      |
| 健康检查配置 | 是否开启    | 开启或者关闭健康检查。 关闭健康检查可能会导致业务请求转发至异常的后端服务器。                                                                                                                                                                                                                                                                                                                                                                                |
| 健康检查配置 | 前端协议    | 健康检查目前支持选择TCP协议或UDP协议。 默认：TCP协议。                                                                                                                                                                                                                                                                                                                                                                                    |
| 健康检查配置 | 前端端口    | 健康检查端口号。 取值范围：\[1，65535\]。                                                                                                                                                                                                                                                                                                                                                                                           |
| 健康检查配置 | **高级配置**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ||
| 健康检查配置 | 检查间隔(秒) | 每次健康检查响应的最大间隔时间。 取值范围：\[1-60\]。                                                                                                                                                                                                                                                                                                                                                                                    |
| 健康检查配置 | 超时时间(秒) | 每次健康检查响应的最大超时时间。 取值范围：\[1-60\]。                                                                                                                                                                                                                                                                                                                                                                                       |
| 健康检查配置 | 最大重复次数  | 健康检查最大的重试次数。 取值范围：\[1-10\]。                                                                                                                                                                                                                                                                                                                                                                                          |
   
#### **步骤五：添加CDN加速域名**
1. 登录[CDN控制台](https://console.huaweicloud.com/cdn/?locale=zh-cn#/cdn/overview)。
2. 在左侧导航栏选择"域名管理"，进入域名管理页面。
3. 在域名管理界面，单击"添加域名"，配置相关参数。
   - 加速域名：www.example.com。
   
   - 服务范围：中国大陆境外。
   
   - 业务类型：网站加速。
   
   - 源站配置：
     - 回源方式：HTTP。
     
     - 源站类型：源站IP。
     
     - 源站地址：全球加速Anycast IP。
     
     - 回源端口：与[步骤三：配置监听器]中的前端端口保持一致。
     
     - 回源HOST：默认为加速域名。
     
     
     图5添加域名   
     ![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000002462228905.png "点击放大")
     
     
    
详细参数解释请参见[添加CDN加速域名](https://support.huaweicloud.com/qs-cdn/cdn_01_0059.html)。
#### **步骤六：配置DNS解析**
添加加速域名后，CDN会自动生成一条CNAME域名。加速域名在CDN服务中获得的CNAME域名不能直接访问，必须在加速域名的域名服务商处配置CNAME记录，将加速域名指向CNAME域名，访问加速域名的请求才能转发到CDN节点上，达到加速效果。
本文以配置华为云DNS解析为例，请按照以下步骤操作：
1. 进入[公网域名列表页面](https://console.huaweicloud.com/dns/?#/dns/publiczones)。
2. 在"公网域名"页面的域名列表的"域名"列，单击域名的名称。 进入"解析记录"页面。
   
3. 在页面右上角，单击"添加记录集"。
4. 在"添加记录集"页面，根据界面提示为域名添加**CNAME记录** ，下表中未提到的参数可保持默认值。
   表5记录集参数说明 
   | 参数     | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 本实践取值             |
   |:---|:---|:---|
   | 主机记录   | 解析域名的前缀。 例如创建的域名为"example.com"，其"主机记录"设置包括： - www：用于网站解析，表示解析的域名为"www.example.com"。  - 空：用于网站解析，表示解析的域名为"example.com"。 主机记录置为空，还可用于为空头域名"@"添加解析。   - \*：用于泛解析，表示解析的域名为"\*.example.com"，匹配"example.com"的所有子域名。   | WWW               |
   | 类型     | 记录集的类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | CNAME-将域名指向另外一个域名 |
   | 别名     | 用于是否将此记录集关联至云服务资源实例。 本实践中该参数保持默认配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 否                 |
   | 别名记录   | "别名"参数设置选择"是"时，该项必选。 用于设置记录集关联的华为云服务资源实例。 记录集支持关联的华为云服务资源实例包括：企业门户、Web应用防火墙。 本实践中该参数保持默认配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                 |
   | 线路类型   | 解析的线路类型用于DNS服务器在解析域名时，根据访问者的来源，返回对应的服务器IP地址**。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 全网默认              |
   | TTL(秒) | 解析记录在本地DNS服务器的缓存时间，以秒为单位。 默认值：300秒 取值范围为：1\~2147483647 如果您的服务地址经常更换，建议TTL值设置相对小些，反之，建议设置相对大些。 本实践中该参数保持默认配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 5分钟，即300s         |
   | 值      | 需指向的域名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | CDN分配的CNAME域名     |
      
   
5. 单击"确定"。
6. **验证CNAME配置是否生效**
   打开Windows操作系统中的cmd程序，输入如下指令：
   ```
   nslookup -qt=cname 加速域名
   ```
   本实践中加速域名为"www.example.com"。如果回显CDN分配的CNAME域名，则表示CNAME配置已经生效。
   
 
#### 配置验证
在本实践中，在海外国家/地域使用windows电脑测试访问上海一加速效果，具体如下：
在加速地域电脑上执行curl命令查看数据丢包时延情况
```
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http[s]://<应用服务域名>[:<端口>]"
```
![](https://support.huaweicloud.com/bestpractice-cdn/public_sys-resources/note_3.0-zh-cn.png)
- 端口：应用对外发布服务的端口号。
- time_connect：连接时间。从开始建立TCP到连接完成所用的时间，单位为秒。
- time_starttransfer：开始传输时间。从客户端发出请求到后端服务器响应第一个字节所用的时间，单位为秒。
- time_total：连接总时间。从客户端发出请求到后端服务器响应会话所用的时间，单位为秒。
 
