通过全球加速实现海外用户加速访问国内网站
方案概述
应用场景:客户网站服务器部署在国内,由于跨国网络不稳定,跨境丢包等因素,海外用户在访问网站时经常出现丢包、时延大、网络抖动等问题,通过全球加速服务优化海外用户访问,实现访问加速。
方案架构:客户应用部署在华东-上海一区域,域名已经通过DNS解析到华东-上海一的弹性公网IP,并且已经完成备案并对外提供Web服务。海外用户可以通过DNS智能解析到全球加速服务Anycast IP,全球用户访问GA服务就近接入华为云骨干网快速传输到华东-上海一的弹性公网IP。
资源成本与规划
资源 |
资源说明 |
数量 |
费用 |
---|---|---|---|
加速实例 |
按照每个全球加速实例的创建时长收费。 按小时计费,创建时长不满1小时按1小时收费。 实例费=实例单价*创建时长 |
1 |
请参见全球加速价格详情。 |
数据传输 |
通过全球加速服务转发的流量费用,按GB收费。 从一个全球加速接入点到一个应用部署区域之间的流量,定义流量大的方向为主方向,按照每条流量的主方向收费。 数据传输费=流量单价*使用量 |
根据实际转发的流量 |
|
公网解析记录 |
根据不同地区的用户添加如下3条A类型解析记录:
|
3 |
免费 |
流程简介
步骤一:跨境申请
根据中华人民共和国工业和信息化部(简称工信部)相关法律、行政法规规定,中国大陆只有三大运营商具备跨境业务运营资质。所以涉及跨中国大陆访问的业务场景,都需要通过跨境资质审核。
- 进入全球加速跨境申请管理界面。
- 在跨境申请管理页面,单击“跨境申请”。
图1 跨境申请
- 在跨境云服务在线申请页面,根据提示配置相关参数,并上传相关材料。
- 单击“立即申请”。
步骤二:购买全球加速实例
跨境资质申请完成后,购买全球加速实例。
- 登录全球加速控制台。
- 在全球加速页面,单击“购买全球加速服务”。
图2 购买全球加速实例
- 根据界面提示配置相关参数,加速地域选择中国大陆以外,详细请参见表2。
图3 创建全球实例
表2 创建全球加速实例 参数
说明
名称
用户将要创建的全球加速实例的名称。
只能由中文、英文字母、数字、中划线组成。
长度范围:1-64个字符。
企业项目
企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。
您可以使用已有企业项目,也可以新建企业项目。
加速区域
加速区域指需要进行访问加速的区域。
支持选择“中国大陆以外”或“中国大陆”,默认选择“中国大陆以外”。
本实践中请选择“中国大陆以外”。
IP地址类型
全球加速实例的地址类型。
默认选择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。
类型 |
参数 |
说明 |
---|---|---|
终端节点组 |
名称 |
终端节点组名称。 每个监听器下每个区域只允许关联一个终端节点组。 只能由中文、英文字母、数字、中划线组成。 长度范围:1-64个字符。 |
区域 |
终端节点组所属区域。本实践选择“上海一” |
|
描述 |
终端节点组描述。 长度范围:不超过255个字符。 |
|
流量调度 |
配置到不同终端节点组的流量比例。 如果增加流量调度比例,将有更多的请求分发到此终端节点组。 如果将流量调度比例设置为0,则不会将任何请求分发到此终端节点组。 取值范围为:[0-100]。
说明:
如果监听器中有多个终端节点组,分配流量时优先选择时延最低的终端节点组,并按照该终端节点组的流量调度值分配流量,然后再向其他终端节点组分配其余流量。 |
|
终端节点 |
终端节点充当客户端的接触点,加速实例跨正常运行的终端节点分发传入流量。 本实践中选择EIP。 |
|
健康检查配置 |
是否开启 |
开启或者关闭健康检查。 关闭健康检查可能会导致业务请求转发至异常的后端服务器。 |
前端协议 |
健康检查目前支持选择TCP协议。 默认:TCP协议。 |
|
前端端口 |
健康检查端口号。 取值范围:[1,65535]。 |
|
高级配置 |
||
检查间隔(秒) |
每次健康检查响应的最大间隔时间。 取值范围:[1-60]。 |
|
超时时间(秒) |
每次健康检查响应的最大超时时间。 取值范围:[1-60]。 |
|
最大重复次数 |
健康检查最大的重试次数。 取值范围:[1-10]。 |
步骤五:配置DNS解析
全球加速实例配置完成后,需要配置DNS智能解析,实现海外用户解析到全球加速Anycast IP。
本文以配置华为云DNS解析为例,请按照以下步骤操作:
- 进入公网域名列表页面。
- 在“公网域名”页面的域名列表的“域名”列,单击域名的名称。
- 在页面右上角,单击“添加记录集”。
- 在“添加记录集”页面,根据界面提示为域名添加3条A类型记录集,详细请参见表5。
图5 设置记录集参数
表5 A类型记录集参数说明 参数
参数说明
主机记录
解析域名的前缀。
例如创建的域名为“example.com”,其“主机记录”设置包括:
类型
记录集的类型,此处选择A类型。
别名
用于是否将此记录集关联至云服务资源实例。
本实践中该参数保持默认配置。
别名记录
“别名”参数设置选择“是”时,该项必选。
用于设置记录集关联的华为云服务资源实例。
记录集支持关联的华为云服务资源实例包括:云速建站、Web应用防火墙。
本实践中该参数保持默认配置。
线路类型
解析的线路类型用于DNS服务器在解析域名时,根据访问者的来源,返回对应的服务器IP地址。
3个A类型记录集分别选择“全网默认”、“地域解析 > 中国大陆”、“地域解析 > 全球”。
TTL(秒)
解析记录在本地DNS服务器的缓存时间,以秒为单位。
默认值:300秒
取值范围为:1~2147483647
如果您的服务地址经常更换,建议TTL值设置相对小些,反之,建议设置相对大些。
本实践中该参数保持默认配置。
值
域名对应的IPv4地址。
本实践中需要根据不同线路类型的解析记录配置不同的值,具体如下:
- 全网默认、中国大陆线路类型:国内公网IP地址。
- 全球:全球加速实例分配的加速IP地址。
权重
可选参数,返回解析记录的权重比例。
默认值:1
取值范围:0~1000
本实践中该参数保持默认配置。
标签
可选参数,记录集的标识,包括键和值,每个记录集可以创建10个标签。
描述
可选参数,对域名的描述。
长度不超过255个字符。
- 单击“确定”。
- 返回“解析记录”页面。
添加完成后,您可以在域名对应的记录集列表中查看已添加的记录集(“中国大陆”,“全网默认”解析到上海一EIP,“全球”解析到全球加速Anycast IP)。当记录集的状态显示为“正常”时,表示记录集添加成功。
配置验证
在本实践中,在海外国家/地域使用windows电脑测试全球加速访问上海一加速效果,具体如下:
- 打开cmd窗口,执行 nslookup <应用服务域名> 查看解析结果是全球加速Anycast IP
- 执行curl命令测试直接公网访问上海一EIP时延
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http[s]://<IP>[:<端口>]"
- IP:标识应用的弹性公网IP。
- 端口:应用的http端口号。
- time_connect:连接时间。从开始建立TCP到连接完成所用的时间,单位为秒。
- time_starttransfer:开始传输时间。从客户端发出请求到后端服务器响应第一个字节所用的时间,单位为秒。
- time_total:连接总时间。从客户端发出请求到后端服务器响应会话所用的时间,单位为秒。
- 执行curl命令测试直接访问全球加速Anycast IP时延
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http[s]://<IP>[:<端口>]"
命令中的“IP”需要填入全球加速服务提供的Anycast IP。
- 通过对“time_connect”值进行比较,对比加速前后的时延。