本文指导您如何通过一个全球加速GA(Global Accelerator)实例加速访问多个HTTPS域名。

前提条件

  • 您的网站已经完成备案。所有对中国内地(大陆)提供服务的网站都必须先进行ICP备案,才可开通服务。更多信息,请参见什么是ICP备案
  • 您已经购买并申请了SSL证书。具体操作,请参见证书选型与购买提交证书申请

场景示例

本文以下图场景为例。某公司的总部在北京地域,总部在阿里云上创建了两台服务器,两台服务器均部署了Web服务,并通过不同的域名对外提供服务。客户端主要分布在杭州地域,该公司的Web服务面临以下挑战:
  • 公网传输不稳定,经常出现延迟、抖动、丢包等网络问题。
  • 多台服务器通过不同的域名对外提供服务,为网站配置加速服务时,例如全站加速DCDN(Dynamic Route for Content Delivery Network)、内容分发网络CDN(Content Delivery Network)等加速服务,一般需要分别为每个域名进行加速,成本较高。
HTTP-S场景架构图

您可以部署全球加速服务,并配置HTTPS协议监听。全球加速的HTTPS协议监听支持配置基于域名的转发策略,通过匹配不同的域名访问请求,将访问请求转发至后端相应的服务器;同时HTTPS协议监听可以对客户端的访问请求进行数据加密,能有效保障数据传输的安全性,实现通过一个全球加速实例同时加速多个HTTPS域名访问。

当前该公司Web服务器的服务信息以及该公司使用全球加速服务后对客户端访问请求的转发规划如下:

访问域名 监听协议 监听端口 对应转发策略 对应终端节点组 对应服务器 服务器服务协议 服务器服务端口 服务器公网IP
example.com HTTPS 443 默认转发策略 默认终端节点组 服务器1 HTTP 80 192.0.XX.XX
example.net 自定义转发策略 虚拟终端节点组 服务器2 HTTPS 443 198.0.XX.XX

配置步骤

流程

步骤一:组合购买实例

您可以在全球加速控制台填写自己的加速业务,系统会根据加速业务智能推荐加速方案。根据系统推荐的加速方案,您可以组合购买加速业务所需要的加速实例和基础带宽包。

  1. 登录全球加速管理控制台
  2. 实例列表页面,单击右上角的购买向导
    说明 如果您是首次使用全球加速服务,请忽略该步骤。
    购买向导
  3. 智能推荐产品方案,选择以下与您业务相关的选项区域,根据以下信息填写加速业务,然后单击点击生成方案
    配置 说明
    您需要加速的地域 选择需要进行访问加速的地域。

    本文选择杭州

    服务所在地域 选择目标服务器所在的地域。

    本文选择北京

    是否有ICP备案 选择您的加速服务是否有备案。

    本文选择有备案

    服务端部署在 选择后端服务部署所在位置。

    本文选择阿里云

    峰值带宽的范围 输入业务高峰期需要的带宽用量,单位是Mbps。

    本文输入2

    最大并发连接数 最大并发连接数定义了一个全球加速实例能够承载的最大连接数。当实例上的连接超过规格定义的最大连接数时,新建连接请求将被丢弃。

    本文选择5千

  4. 推荐方案区域,确认方案内容后,单击去组合购买
    推荐方案
    说明 推荐方案中的实例配置为符合您业务的最小值方案,您还可以在购买页面进行修改。
  5. 在购买页面,根据以下信息购买加速业务所需要的实例,然后单击立即购买并完成支付。
    配置 说明
    订购时间 选择实例的订购时间。
    规格 选择购买全球加速实例的规格。

    本文选择小型Ⅰ(规格单元)

    带宽类型 选择购买基础带宽包的带宽类型。

    本文选择标准加速带宽

    带宽峰值 选择购买基础带宽包的带宽峰值。

    本文选择为2 Mbps。

步骤二:添加加速区域

购买加速业务所需要的实例后,您便可以添加加速区域,指定可以加速访问后端服务的用户所在的地域并为其分配加速带宽。

  1. 实例列表页面,找到已购买的全球加速实例,单击实例ID。
  2. 在实例详情页面,单击加速区域页签,然后在华东页签下单击添加接入地域
  3. 添加加速区域对话框,根据以下信息配置加速地域,然后单击确定
    配置 说明
    地域 选择访问加速服务用户的所属地域。

    本文选择杭州

    带宽 输入加速服务的地域带宽。

    本文输入2 Mbps。

    IP地址协议 选择用户接入全球加速服务的IP地址协议。

    本文选择IPv4

    添加成功后,全球加速会在接入地域分配一个加速IP,用来加速用户访问。加速IP

步骤三:添加监听和终端节点组

监听负责检查连接请求,根据您指定的端口和协议处理来自客户端的入站连接。每个监听都关联一个终端节点组,通过指定要分发流量的地域,将终端节点组与监听关联。关联后,全球加速会将流量分配到与监听关联的终端节点组内的最佳终端节点。

关于配置默认终端节点组和虚拟终端节点组,请参见终端节点组

  1. 在实例详情页面,单击监听页签,然后单击添加监听
  2. 配置监听和协议配置向导页面,根据以下信息配置监听,然后单击下一步
    监听
    配置 说明
    监听名称 输入监听的名称。

    名称长度为2~128个字符,以大小写字母或中文开头,可包含数字、下划线(_)和短划线(-)。

    协议 选择监听的协议类型。

    本文选择HTTPS

    端口 指定用来接收请求并向终端节点进行转发的监听端口,端口取值范围:1~65499

    本文输入443

    客户端亲和性 选择是否保持客户端亲和性。保持客户端亲和性,即客户端访问有状态的应用程序时,可以将来自同一客户端的所有请求都定向到同一终端节点。

    本文选择源IP

  3. 配置SSL证书配置向导页面,在选择服务器证书下,选择您已经申请的SSL证书,然后单击下一步
    配置SSL证书后,全球加速可以使用HTTPS协议对客户端访问请求以及网站数据进行加密,有效保护敏感数据的传输。
    说明 此处的证书用于加密从客户端至全球加速阶段的数据。从全球加速至后端服务器阶段的数据加密通过后端服务器安装的证书实现。此处选择的证书可以与后端服务器安装的证书相同。
  4. 配置终端节点配置向导页面,根据以下信息配置默认终端节点组,然后单击下一步
    默认终端节点组
    配置 说明
    节点组名称 输入终端节点组的名称。

    名称长度为2~128个字符,以大小写字母或中文开头,可包含数字、下划线(_)和短划线(-)。

    地域 选择终端节点组所属的地域,即请求要访问的后端服务器的所属地域。

    本文选择北京

    后端服务部署在 选择后端服务部署在阿里云还是非阿里云。

    本文选择阿里云

    保持客户端源IP 默认开启保持客户端源IP功能,支持后端服务查看客户端源IP地址。HTTPS监听将从HTTP的x-forward-for字段读取客户端源IP地址。更多信息,请参见保持客户端源IP
    终端节点 终端节点是客户端请求访问的后端服务器。您可以根据以下信息配置终端节点:
    • 后端服务类型:选择阿里云公网IP
    • 后端服务:输入要加速的后端服务的IP地址。本文输入服务器1的公网IP地址192.0.XX.XX
    • 权重:输入终端节点权重,权重取值范围:0~255。全球加速根据您配置的权重按比例将流量路由到终端节点。
      注意 如果某个终端节点的权重设置为0,全球加速将终止向该终端节点分发流量,请您谨慎操作。
    后端服务协议 选择后端服务器使用的服务协议:
    • HTTP(默认值)
    • HTTPS

    本文保持默认配置为HTTP

    端口映射 当您监听的端口和您终端节点提供服务的端口不相同时,您需要输入端口映射关系。
    • 监听端口:只能填写当前监听的端口。本文输入443
    • 终端节点端口:您终端节点提供服务的端口。本文输入80
  5. 配置审核配置向导页面,确认监听和终端节点配置信息后,单击提交
  6. 配置虚拟终端节点组。
    1. 监听页签下,找到目标监听实例,在默认终端节点组ID/名称列单击实例ID。
    2. 终端节点组页签下,单击添加虚拟终端节点组
    3. 添加虚拟终端节点组对话框,根据以下信息进行配置,然后单击创建
      此处配置与步骤4的默认终端节点组基本一致,其中:
      • 后端服务:输入服务器2的公网IP地址198.0.XX.XX
      • 后端服务协议:选择HTTPS
      • 端口映射:无需配置端口映射关系。

        如果您监听的端口和您终端节点提供服务的端口相同,您无需填写端口映射关系,全球加速自动将访问请求发送至终端节点的监听端口。

步骤四:添加转发策略

HTTPS协议监听接受到访问请求后,会优先匹配自定义转发策略,在满足匹配条件后,HTTPS协议监听将访问请求转发至对应终端节点组的最佳终端节点中。如果访问请求未匹配到任何自定义转发策略,将会直接通过默认转发策略被转发至默认终端节点组中。

以下步骤为服务器2对应的虚拟终端节点组创建自定义转发策略。

  1. 在监听详情页面,单击转发策略页签。
  2. 单击插入新策略,并根据以下信息配置转发策略,然后单击确定
    参数 说明
    策略名称 输入转发策略的名称。

    名称长度为2~128个英文或中文字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。

    如果(条件全部匹配) 配置转发条件。
    • 域名
    • 路径

    本文选择域名,并输入要匹配的域名example.net

    域名长度为3~128个字符,允许包含字母、数字、短划线(-)和半角句号(.),支持使用星号(*)和半角问号(?)作为通配符。

    那么转发至虚拟终端节点组 选择目标虚拟终端节点组。

    本文选择步骤三:添加监听和终端节点组创建的虚拟终端节点组。

步骤五:配置CNAME域名解析

您需要将要加速的域名通过DNS解析到全球加速的CNAME地址,访问请求才能转发到全球加速,实现加速效果。本文以阿里云云解析DNS为例,为您介绍如何修改DNS解析。
说明 如果您使用的DNS解析服务为非阿里云云解析DNS,请登录您的DNS服务商系统修改网站域名的解析记录。
  1. 登录阿里云云解析DNS控制台
  2. 域名解析页面,找到目标域名,在操作列单击解析设置
  3. 解析设置页面,找到要修改的解析记录,在操作列单击修改
  4. 修改记录面板,完成以下配置,然后单击确认
    配置 说明
    记录类型 CNAME记录用于将域名指向另一个域名。

    本文选择CNAME

    主机记录 输入加速域名的前缀。
    • 如果您的加速域名为www.aliyun.com,主机记录为www
    • 如果您的加速域名为aliyun.com,主机记录为@
    • 如果您的加速域名为*.aliyun.com,主机记录为*
    • 如果您的加速域名为mail.aliyun.com,主机记录为mail
    解析线路 选择默认
    记录值 输入全球加速实例分配的CNAME。

    您可以在实例列表页面查看全球加速实例分配的CNAME。

    TTL DNS解析记录在DNS服务器上的生存时间。

    本文选择10分钟

步骤六:访问测试

测试客户端是否可以通过不同域名访问部署在北京的Web服务,并实现访问加速。
说明
  • 本文以Linux操作系统为例进行测试。不同类型的操作系统测试命令可能会有差异,具体测试命令请参见您操作系统的操作指南。
  • 使用全球加速服务后的加速效果以您的实际业务测试为准。
  1. 在接入地域(本文为杭州)的电脑中打开命令行窗口。
  2. 通过域名example.com访问后端Web服务,并查看加速效果。
    1. 执行以下命令,测试网站连通性。
      curl https://<网站域名>
      当返回对应网站的业务信息时,表示已连通。例如:
      [root@<主机名~># curl https://example.com
      Hello World! This is server1.
    2. 执行以下命令,查看数据传输情况。
      curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "https://<网站域名>"
      其中:
      • time_connect:连接时间,从开始到建立TCP连接完成所用的时间,单位为秒。
      • time_starttransfer:开始传输时间。在客户端发出请求后,到后端服务器响应第一个字节所用的时间,单位为秒。
      • time_total:连接总时间。客户端发出请求后,到后端服务器响应会话所用的时间,单位为秒。
      您可以通过以上指标查看全球加速的加速效果,例如:
      • 加速前的访问传输情况
        [root@<主机名~># curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "https://example.com"
        time_connect:0.033
        time_starttransfer:0.260
        time_total:0.260
      • 加速后的访问传输情况
        [root@<主机名~># curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "https://example.com"
        time_connect:0.030
        time_starttransfer:0.059
        time_total:0.059
  3. 通过域名example.net访问后端Web服务,并查看加速效果。
    1. 执行以下命令,测试网站连通性。
      curl https://<网站域名>
      当返回对应网站的业务信息时,表示已连通。例如:
      [root@<主机名~># curl https://example.net
      Hello World! This is server2.
    2. 执行以下命令,查看数据传输情况。
      curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "https://<网站域名>"
      其中:
      • time_connect:连接时间,从开始到建立TCP连接完成所用的时间,单位为秒。
      • time_starttransfer:开始传输时间。在客户端发出请求后,到后端服务器响应第一个字节所用的时间,单位为秒。
      • time_total:连接总时间。客户端发出请求后,到后端服务器响应会话所用的时间,单位为秒。

      您可以通过以上指标查看全球加速的加速效果,例如:

      • 加速前的访问传输情况
        [root@<主机名~># curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "https://example.net"
        time_connect:0.006
        time_starttransfer:0.162
        time_total:0.162
      • 加速后的访问传输情况
        [root@<主机名~># curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "https://example.net"
        time_connect:0.030
        time_starttransfer:0.060
        time_total:0.060