为应用域名配置CDN加速

Serverless 应用引擎 SAE(Serverless App Engine)提供了默认的公网和内网域名,虽然方便于测试和开发,但并不适宜作为生产环境中的访问端点。生产环境中,您可以使用自定义域名,以增强品牌形象并提供专业的用户体验。此外,借助CDN加速,可以有效降低数据的传输延迟,同时通过缓存资源,优化性能,并减少运营成本。本文主要介绍在Serverless 应用引擎上配置自定义域名,并结合CDN进行加速。

前提条件

  • 已开通了CDN服务。如果未开通,请参见开通CDN服务进行开通。

  • 已创建Web应用。具体操作,请参见创建应用

访问流程

首次使用CDN域名访问SAE应用的流程

image

访问CDN缓存流程

image

步骤一:创建自定义域名

  1. 登录SAE控制台

  2. 在左侧导航栏,单击命名空间,在顶部菜单栏选择目标地域,然后单击目标命名空间名称。

  3. 在左侧导航栏,单击域名管理

  4. 域名管理页面,单击创建自定义域名

  5. 在弹出的自定义域名面板,根据下表说明配置自定义域名相关信息,然后单击确定

    说明

    您只需设置公网或内网类型中的一个CNAME,无需同时配置两种网络类型的CNAME记录。

    配置项

    说明

    域名

    填写已在阿里云备案或接入备案的自定义域名名称。

    说明
    • 您自定义的域名需要进行办理ICP备案。具体操作,请参见首次备案流程

    • 如果您的ICP备案不属于阿里云,您需要将备案迁移到阿里云。

    公网 CNAME

    • 为部署的应用自动分配的公网访问地址,不支持修改。

    • 配置自定义域名的公网CNAME:

      1. 单击云解析DNS控制台,跳转至云解析DNS控制台。

      2. 在左侧导航栏,选择公网DNS解析 > 权威解析,然后单击目标域名。

      3. 解析设置页面,单击添加记录,然后在弹出的添加记录面板中设置以下信息。

        1. 记录类型对应的下拉列表中选择CNAME

        2. 主机记录对应的文本框中输入您的自定义域名前缀,例如自定义域名为abc.test.com,域名前缀为abc

        3. 解析请求来源对应的下拉列表中选择运营商网络。

        4. 记录值对应的文本框中输入公网CNAME。

        5. 在TTL对应的下拉列表中选择选择缓存时间,默认是10分钟。

      4. 单击确认

    内网 CNAME

    • 为部署的应用自动分配的内网访问地址,不支持修改。

    • 配置自定义域名的内网CNAME:

      1. 单击云解析DNS控制台,跳转至云解析DNS控制台。

      2. 在左侧导航栏,选择公网DNS解析 > 权威解析,然后单击目标域名。

      3. 解析设置页面,单击添加记录,然后在弹出的添加记录面板中设置以下信息。

        1. 记录类型对应的下拉列表中选择CNAME

        2. 主机记录对应的文本框中输入您的自定义域名前缀,例如自定义域名为abc.test.com,域名前缀为abc

        3. 解析请求来源对应的下拉列表中选择运营商网络。

        4. 记录值对应的文本框中输入内网CNAME。

        5. 在TTL对应的下拉列表中选择选择缓存时间,默认是10分钟。

      4. 单击确认

    可选:关联的应用

    单击关联的应用对应的下拉列表,选择需要关联的应用。

    HTTPS

    选择是否使用HTTPS协议:

    • 禁止:表示选择HTTP协议。

    • 启用:

      • 选中强制 HTTPS复选框:表示强制使用HTTPS协议。

      • 单击编辑证书

        • 选择阿里云 SSL 证书:在证书名称TLS协议版本对应的下拉框中选择目标证书名称和指定的TLS协议版本。

        • 选择手动上传:需要输入证书名称,输入或上传PEM 证书内容PEM 证书密钥,选择指定的TLS 协议版本

    Web应用防火墙(WAF)

    选择是否开启Web应用防火墙(WAF)

    • 禁止:不使用Web应用防火墙。

    • 启用:启用后访问该域名的流量将受到Web应用防火墙(WAF)保护,按量计费收取对应的防护费用。具体收费信息,请参见计费说明

    image

步骤二:创建加速域名

配置业务信息

  1. 登录CDN管理控制台

  2. 在左侧导航栏,单击域名管理,在顶部菜单栏选择目标资源,然后单击添加域名

    说明

    首次在CDN控制台添加一个新域名时,需要完成域名归属权验证(只需要校验配置CNAME的归属权)。具体操作,请参见验证域名归属权。如果之前已经验证通过了根域名的归属权,请忽略。

  3. 业务信息区域,根据下表说明完成参数配置。

    配置项

    说明

    加速区域

    • 仅中国内地:所有用户访问均会调度至中国内地就近节点提供加速服务(海外地区和中国香港、中国澳门、中国台湾地区的访问流量将会被调度至华东电信的CDN节点)。

    • 全球:所有用户访问将会择优调度至全球就近节点提供服务。

    • 全球(不包含中国内地):非中国内地用户访问会被调度至就近节点服务;中国内地用户访问会被调度至日本、新加坡和中国香港的CDN加速节点服务。

    重要
    • 加速区域为仅中国内地全球时,加速域名要求必须备案,您可以登录阿里云ICP代备案管理系统完成备案。由于工信部备案系统存在数据延迟,刚完成备案的域名请在8小时后再配置。

    • 加速区域为全球(不包含中国内地)时,对加速域名备案不作要求。

    • 不同的加速区域价格不一样,请根据您的实际需求选择。计费详情,请参见CDN定价

    加速域名

    • 域名格式要求:

      • 域名长度为1~67个字符。

      • 支持:小写英文字母(a~z)、数字(0~9)和短划线(-),例如example.com

      • 不支持:中文、英文大写字母(A~Z)和除了短划线(-)以外的其他符号,且短划线(-)不能连续出现、不能单独使用、不能出现在开头和结尾。如果域名包含中文(例如:阿里云.网址),请以中文形式进行相关备案,再通过第三方工具 Punycode将中文域名转换成为英文域名(例如:xn--fiq****.xn--eq****)后填入。

    • 泛域名要求:

      • CDN支持泛域名加速,关于泛域名的添加规则,请参见CDN支持泛域名加速吗?

      • 泛域名和子域名必须在同一个账号下,否则添加域名时系统会报错。

      • 如果泛域名未被添加到任何CDN账号下,则支持在多个账号下添加不同的子域名。

      • 当您将.aliyundoc.com形式的泛域名和example.aliyundoc.com形式的精确域名一起添加到CDN时,精确域名的数量上限为500个,超过500个后新增的精确域名将无法生效,即无法使用CDN加速服务。

        说明

        如果您的域名总带宽日均峰值大于50 Mbps,且业务无风险,可参见配额管理申请增加域名个数。

    • 域名备案/合规要求:

      • 备案:如果您的加速区域为全球仅中国内地,无论源站在哪里域名都必须备案,推荐您进入阿里云ICP代备案管理系统进行备案。ICP备案接入前请参考ICP备案服务器(接入信息)检查完成相关准备与检查。

      • 加速内容必须合法且符合CDN业务规范:详细信息,请参见使用限制关于内容审核部分。

      • 每个阿里云账号最多可以添加50个加速域名。

        说明

        如果您域名的总带宽日均峰值大于50 Mbps,且业务无风险,可参见配额管理申请增加域名个数。

      • 加速域名不允许重复添加:如果需要将CDN域名跨账号迁移到另一个阿里云账号上,请参考跨账号迁移CDN域名验证域名归属权后,将目标域名迁移到当前账号。如果出现目标域名已被添加到其他云产品(例如视频点播、DCDN等)的提示,请提交工单处理。

      • 回收规则:如果您的域名处于停用状态超过120天(包含审核未通过状态),阿里云CDN会自动删除该域名的相关记录。如果您需要继续使用,需前往阿里云CDN控制台重新添加域名。

      • 下线(offline)规则:详细信息,请参见关于域名下线(Offline)规则调整的公告

      • 沙箱说明:当您的域名遭受攻击(例如DDoS或CC攻击)或者未向阿里云提前报备业务突增情况,导致带宽或者QPS大幅度上涨时,CDN系统有权将您的域名切入沙箱说明(不会100%将域名切入沙箱,阿里云会根据域名业务情况、攻击影响程度等因素综合判断),以防止影响其他正常用户的加速服务。在攻击较严重的情况下,同账户下的其他域名也会被切入沙箱,同时还会限制账号下的新域名接入。

    业务类型

    • 图片小文件:适用于电商类、网站类、游戏图片类等小型的静态资源加速场景。

    • 大文件下载:适用于大于20 MB的静态文件加速场景。

    • 视音频点播:适用于音频或视频文件加速场景。

    • 什么是DCDN:适用于含有大量动态和静态内容混合,且多为动态资源请求的加速场景。

      当业务类型选择全站加速时,您需要根据界面提示,前往全站加速控制台添加域名并进行相关配置。具体操作,请参见添加服务域名

    说明

    配置后不允许修改。

    资源分组

    选择默认资源组或您自己创建的资源组。创建新的资源组,请参见创建资源组

    标签

    自定义标签键和标签值。

    image

配置源站

  1. 在源站信息区域,单击新增源站信息

  2. 在弹出的新建源站信息面板,按照下表说明完成参数配置,然后单击确定

    配置项

    说明

    源站信息

    选择源站域名,并在域名的输入框中输入步骤一自定义的域名。

    优先级

    源站优先级支持设置,主优先级大于备优先级。用户请求通过阿里云CDN回源时,会优先回源到优先级为主的源站地址。主源站出现故障的情况下,将会回源到备源站。源站优先级的取值范围为0~127,数值越小,优先级越高。主源站的优先级默认值为20,备源站的优先级默认值为30。如需配置其他值,请填写信息申请。

    例如,有A、B两个源站,A源站的优先级为主,B源站的优先级为备,则用户请求通过阿里云CDN回源时会优先回源到A源站,如果A源站出现故障,将会回源到B源站,当A源站恢复正常后会从B源站切换回A源站。

    权重

    当多个源站的优先级相同时,阿里云CDN会按照源站的权重分配用户请求回源到不同源站的比例,实现按权重的负载均衡。您可以根据业务需求,自行设置权限值。

    • 取值范围:1~100,数值越大,源站分配到的用户请求比例越高。

    • 默认值:10。

    例如:有A、B两个源站,两个源站的优先级都是主,A源站的权重为80,B源站的权重为20,则用户请求将会按照8:2的比例在A、B两个源站之间分配。

    说明

    在某些情况下,用户实际请求回源到不同源站的比例并不一定会与域名配置中源站的权重比例相同,例如:

    • 回源QPS较低(例如不到10QPS),回源到不同源站的概率分布不太均匀,因此会出现实际回源权重与源站配置的权重不一致的情况。

    • 所有的请求均来自于某个IP地址(或者有限的某几个IP地址),由于同一个IP地址将会被调度到同一个CDN节点,并且CDN节点与源站之间存在TCP会话保持,因此很可能会出现大部分请求都回源到同一个源站的情况。

    如果您希望验证用户请求回源权重大致等同于域名配置中的源站权重,您可以使用第三方拨测工具来发起探测任务,配置地理位置分布尽可能广、运营商分布尽可能多的探测客户端,并且探测任务需要持续一段时间,以便于采集到足够多的有效探测数据。

    端口

    即,CDN节点请求源站资源时使用的端口。默认为80,根据您源站的支持情况,可自定义设置回源端口,允许设置的端口范围为1~65535。

    • 默认值:80。

    • 端口值为443时,以HTTPS协议回源;80或其他自定义端口,以HTTP协议回源。

    说明
    • 如果需要以HTTPS协议回源到其他自定义端口,请参见配置回源协议

    • 如果配置了回源协议功能(默认为关闭状态),这里配置的端口会失效。关闭回源协议的方法,请参见配置回源协议

    • 当源站选择OSS域名时,回源端口是否支持自定义端口,取决于OSS产品。

    image

    说明

    您可以根据需求重复以上步骤添加多个源站。

域名审核

  1. 完成源站配置后,单击下一步

  2. 等待人工审核。

    说明

    如果您的加速域名无需人工审核,将直接进入下一个配置环节,您可以根据实际业务需求,完成推荐配置。

    审核通过后,域名状态显示为正常运行,表示添加成功。

步骤三:配置回源的域名

  1. CDN管理控制台的域名管理页面,等待您创建的加速域名的状态变为正常运行,然后单击加速域名名称。

  2. 进入域名详情页面,在左侧导航栏,单击回源配置

  3. 配置页签,单击指定源站回源区域添加

    image

  4. 在弹出的指定源站HOST面板完成以下参数配置,然后单击确定

    配置项

    说明

    源站类型

    在下拉框中选择基础源站地址

    源站地址

    在下拉式框中选择配置源站步骤中选择的源站域名。

    回源HOST类型

    在下拉框中选择基础源站地址

    回源HOST

    在下拉式框中选择配置源站步骤中选择的源站域名。

    image

步骤四:配置CNAME

获取加速域名的CNAME域名

  1. 登录CDN管理控制台

  2. 在左侧导航栏,单击域名管理

  3. 域名管理页面,在顶部菜单栏选择目标资源组,然后复制目标域名CNAME列的记录值。

配置CNAME域名解析

本文以托管在阿里云云解析DNS上的域名为例进行说明。

重要
  • 如果您已经为加速域名配置了A记录,为保证业务不中断,请先进行模拟访问测试(可选),验证加速域名访问正常后,停用A记录后再将加速域名的DNS解析记录指向CNAME域名。

  • 配置泛域名(如*.aliyundoc.com)解析为CNAME域名时,此泛域名的次级域名(如example.aliyundoc.com)都将支持加速功能,但不支持加速泛域名的三级域名,更多信息请参考:CDN支持泛域名加速吗?

  • 同一个域名解析服务商下,域名解析存在冲突规则。具体冲突和解决方法,请参见解析记录冲突规则配置CNAME

  • 由于阿里云CDN校验域名的DNS解析记录的服务器部署在中国内地。如果您对域名做了分区域DNS解析配置,例如仅对域名的中国内地以外区域(中国香港、中国澳门、中国台湾、其他国家和地区)配置了阿里云CDN的CNAME地址,校验服务器将无法解析到该CNAME地址,且在CDN控制台该域名的CNAME状态会显示为待配置,这种情况不影响CDN的加速服务。

  • 阿里云CDN、全站加速DCDN、直播以及点播产品的CNAME域名仅可以作为阿里云CDN的调度解析使用,对于恶意使用CNAME域名的行为,阿里云有权清退对应的域名和账号。

  1. 使用加速域名所在的阿里云账号,登录云解析DNS控制台

  2. 域名解析页面,找到您的域名,在域名右侧单击解析设置

  3. 解析设置页面,单击添加记录

  4. 在弹出的添加记录面板,根据下表说明完成参数配置,然后的单击确认

    配置项

    说明

    记录类型

    在下拉框中选择CNAME

    主机记录

    • 加速域名为根域名时,主机记录为@

    • 加速域名为泛域名的情况下,主机记录为*

    • 加速域名为子域名的情况下,主机记录为子域名的前缀。

    关于子域名的解释,您可以参考基本概念

    解析请求来源

    指域名访问者所在的地区和使用的运营商网络。

    记录值

    输入加速域名对应的CNAME记录值。

    TTL

    TTL为缓存时间,数值越小,修改记录后各地生效时间越快,默认为10分钟。

    image

验证CNAME配置是否生效

  1. 前往阿里云CDN控制台的域名管理列表

  2. 选择目标域名,将鼠标指向加速域名的CNAME状态处,状态为已配置时,则表示CNAME配置已生效。

    image

步骤五:结果验证

CDN管理控制台复制CDN加速域名,然后在浏览器中使用域名进行访问应用。

说明

通过开发者工具检查发现,表示CDN缓存策略实际效果的X-Cache字段返回值以MISS开头,表明首次访问未命中CDN节点缓存,需要向源站请求资源。后续访问命中CDN节点缓存后,X-Cache字段返回值将以HIT开头,表明源站的资源已缓存到CDN节点。

  • 无CDN节点缓存,向源站请求资源。

    image

  • 资源已在CDN节点进行缓存。

    image

相关文档

CDN缓存相关常见问题