使用CDN加速服务对域名加速

上云课代表
  • 收获赞:68
  • 擅长领域:实战派常驻搬运工,为您搜寻有用好玩的阿里云产品实践

本文介绍如何使用CDN加速服务对域名加速。

场景介绍

本文主要介绍如何使用阿里CDN域名加速服务来对视频网站的音视频、图片等文件进行有效缓存,进行文件预热、刷新等操作,以提高网站的访问速度,完善用户体验和设置域名的htts证书以及添加URL鉴权、IP黑名单、防盗链等方式添提高网站的安全性,和借助阿里的CDN域名加速服务实现各种场景的域名加速服务。

目标读者

本文的设置针对视频网站的运维人员或者为需要结合阿里相关API文档对自身平台需要二次开发的程序员,旨在通过本文的描述基本上可以实现域名加速,访问控制等设置以及域名使用的带宽、流量等数据查询的相关功能,对域名设置有基础的认知,能够通过域名配置实现域名加速。

运维人员需要了解加速区域、加速类型,以及回源地址设置为不同类型,对网站的功能影响,以及相关设置的解释和作用,cname的配置和指向;二次开发人员需要在运维了解的基础上,拥有一定的开发基础,以及整体的框架设计的能力。

相关概念

DNS解析记录指向,成功添加加速域名后,CDN会分配一个CNAME地址。需要在域名解析服务商处将加速域名的DNS解析记录指向CNAME地址,访问请求才能转发到CDN节点上,实现CDN加速。

防盗链,常见的就是referer防盗链和URL鉴权防盗链,另外还有远程鉴权、ip黑白名单等方式,通过对资源地址加防盗链增加资源访问的安全性。

前提条件

  1. 已在阿里云服务平台开启CDN域名加速服务。

  2. 拥有域名解析服务,实现将DNS指向cname域名

前提条件

步骤一:新建加速域名

  1. 登录阿里云服务台,依次点击:CDN—域名管理—添加域名。

  1. 添加加速域名。

在添加页面,填入相关参数,其中的加速域域名最后一级域名必须是已经备案后的域名,否者无法添加域名,其中的业务类型加速区域应当符合实际业务需要,其中的源站信息如下所示。

源站信息的填写需要和源站类型保持一致也要符合自身实际回源源站类型。完成基础信息补充后,点击下一步。

域名添加完成后,如上图所示,这里就可以对加速域名进行基本配置,这里先不配置,直接下一步,添加域名解析记录。

最后需要我们在自己DNSPod上添加解析记录,这里以腾讯的DNSPod平台为例。

按照提示说明将参数添加后,就完成canme的指向,基于此,新建加速域名就已经完成。

  1. 使用阿里云API新建域名。

使用以上的具体action完成Java代码开发。

其中的Sources如下:

以上代码只做简易说明,完成加速域名新增后和在控制台上操作效果一致,只需要将cname配置到DNSPod上即可完成域名的添加。

步骤二:加速域名的配置

  1. 控制台上添加参数实现配置。

加速域名配置项,阿里控制台上支持的比较多,具体以实际上需要完成配置。

回源配置以回源协议、回源host、以及回源302跟随等选项,并包括回源请求头、响应头、回源URL、参数改写等组成,这里根据实际业务需要即可。这里的配置包括简单的开关和添加具体的参数,这里以回源请求头为例,(其他操作与此类似,添加参数,保存参数,在列表中管理参数,其中的状态为异步返回通知,如果是二次开发,需要专门处理)。

点击确定后,进入管理列表,这里可以完成对配置项的编辑和删除。

加速域名的配置在控制台上比较好操作,功能众多而且很好实现,相比之下代码配置相对复杂一些。

实际上就是使用当前action,具体配置参数都在functions里,按接口文档指定funtions后,整理配置参数即可完成。

批量配置代码示例(回源SNI)

这里还是按照API说明,使用批量设置action,传递回源sni参数,这里的配置是停用\启用,并传递参数,所以实现起来相对简单些,完成加速域名的配置后,配置会在一段时间后生效,具体和不同的配置项有关。这里的API配置和控制台上的操作,效果一致。常见的配置包括URL鉴权、防盗链、黑白名单、文件缓存等实现起来都比较类似。

URL鉴权配置实现

对于整体请求方式保持不变,但是具体参数需要以不同function区分,有的参数较多,有的返回结果是异步,这里需要开发人员处理好,这边不再赘述。

步骤三:HTTPS证书的绑定与解绑

使用HTTPS证书绑定后的域名极大的提高了网站的安全性,并在当前越来越多的浏览器的支持下HTTPS变的越来越普遍,这里我们同样可以借助阿里服务台对域名进行设置。

在阿里控制台上绑定HTTPS域名证书:

依次点击菜单,开启域名安全加速,根据时间情况填写证书信息,证书名称应该保证不重复,后点击保存。

绑定证书后的域名证书详情:

通过API的支持,我们同样可以完成证书的配置,但是这里比较麻烦的是证书数据获取,据说上传证书和证书中心不属于同一个产品,会有相同的证书ID查询的证书信息不是同一个情况。

使用当前对外接口可以实现HTTPS证书的开启和关闭,通过参数ServerCertificateStatus实现开启或者关闭证书

使用action实现证书的绑定和解绑:

这里需要说明的是,证书的公钥和私钥通常为一长串可能带“/n”的字符串,这里需要先对数据进行处理,比如去掉换行符号,或者其中的“/”。然后再使用设置域名证书的接口对域名进行设置证书。

设置相关信息后开启/关闭证书:

这里单纯的绑定和解绑比较简单,麻烦的是随着证书的绑定和解绑,带来证书已关联域名的修改和证书信息数据本地保存的问题,由于设置相同证书可以给多个域名设置,证书名称不同,ID也不唯一,所以后续通过证书ID获取唯一证书信息是做不到的,这里设置后的证书需要通过域名来查询证书详细信息,这样能保证数据有效。

通过绑定证书后的域名查询证书信息:

这里的实现其实并不是很难,只是需要对证书各种API这块比较了解,才能以独特的视角整理出问题的解决方案,另外关于这里的说明,阿里的文档给出的并不能算仔细。

  1. 整理和总结

通过CDN加速域名创建(包括解析记录的指向),以及常见加速域名的配置,基本上可以完成业务上对加速域名的基本需求,通过URL鉴权、黑名单、防盗链的配置能够有效提高网站资源的安全性,也能够满足平常用户对视频、直播业务用户的基本需求,HTTPS更是提高了网站的安全性,使用户放心的使用我们网站提高的服务和资源。

图22、结合阿里云CDN加速二次开发的业务

加速域名的添加

域名的基本配置实现:

域名设置HTTPS证书:

以上展示的代码仅作为参考,附图和说明文字仅作为开发思路的梳理和总结,以上基本可以满足对一个加速域名的加速需求,使用阿里的CDN加速,能够让我们快速的实现域名加速,为我们的网站提供更好,更快,更安全的服务。