45分钟

使用腾讯云CDN加速静态网站

实验预计耗时:45分钟

1. 课程背景

1.1 课程目的

IIS(Internet Information Services)是微软提供的互联网基本服务,常被用于部署网站服务器。而随着互联网的发展,提供网站服务的企业通常面临着以下网络层面的问题:

  • 用户和业务服务器地域间物理距离远,传输需要多次网络转发,延迟较高且受网络影响大,不稳定;
  • 用户使用运营商与业务服务器所在运营商不同,请求在运营商之间转发带来较高延迟;
  • 业务服务器的网络带宽和处理能力有限,在接收和处理海量请求时,会导致响应速度和可用性下降。

本实验演示如何使用腾讯云CDN加速IIS网站的静态内容,以解决以上问题。

1.2 课前知识准备

1.相关概念

1)环境准备相关

  • 静态网站:网站(Website)是指在Internet上根据一定规则提供相关网络服务的角色。根据数据是否交互,网站提供的服务内容可以分为静态数据(不交互)和动态数据(交互)。提供静态数据的网站就称为静态网站。
  • 私有网络:私有网络是腾讯云提供的逻辑隔离网络空间,与传统数据中心运行的内网环境类似。在私有网络内可以托管腾讯云上的服务资源。

2)CDN相关

  • CDN:CDN全称Content Delivery Network,也就是内容分发网络。腾讯云CDN通过部署遍布全球节点服务器,在现有互联网的基础上构筑一层智能虚拟网络,然后将静态内容发布这些加速节点,结合智能调度系统,使用户可以就近快速获取资源,避免了网络、地域、运营商等因素带来的延迟,有效提升速度、降低时延。CDN技术只能加速静态内容,动态内容可以使用腾讯云全站加速网络ECDN实现加速。
  • 源站:接入CDN加速服务的业务服务器称为源站。
  • 加速节点:在CDN技术中,遍布各地域、各运营商的高性能服务器,用于缓存源站的静态内容。
  • 命中:当客户端向到CDN加速节请求资源,而该节点上有相应资源的缓存,节点服务器就会将资源直接返回给用户,这就称为命中。
  • 回源:当客户端向到CDN加速节请求资源,而该节点上没有相应资源的缓存,或资源已过期,节点服务器就会向源站请求资源,这个过程就称为回源。
  • 中间源:中间源是位于业务服务器(即源站)和 CDN 节点的一个中间层的回源服务器。当用户发起请求时,请求会先到达 CDN 边缘节点,若节点无所需资源,会先向中间源发起资源请求,若在中间源仍未命中,再由中间源向源站发起请求。

3)域名相关

  • DNS服务器:在Internet中访问网站服务器,一般都是使用域名进行访问,例如使用cloud.tencent.com访问腾讯云官网。在使用域名访问时,首先需要将域名解析为IP地址。为客户端实现域名解析的服务器就称为DNS服务器。
  • FQDN:Fully Qualified Domain Name,全限定域名。通俗的说,就是域名的全称。
  • 主机名/主机记录:一个主机的FQDN是由该主机的主机名加上二级域名后缀组成。例:a.cdntest.online域名就表示二级域cdntest.online中主机名为a的主机。

2.相关原理

本实验将部署两个境外IIS静态网站,分别为a.cdntest.online和b.cdntest.online。使用境内客户端访问时,由于地理距离远,访问速度会受到很大的影响。使用CDN加速a.cdntest.online,通过对比测试客户端访问两个IIS网站的速度,体现CDN的加速效果。

当客户端访问未经加速的b.cdntest.online网站时,先向本地DNS服务器请求域名解析,本地DNS服务器解析后,向用户返回IP地址。最后,客户端根据返回的IP地址直接向网站发起请求。在这个过程中,由于网站和客户端地理距离较远,而且两者使用不同的运营商网络,访问延迟较大。

而使用CDN加速的a.cdntest.online会直接分发或通过中间源转发静态内容至腾讯云CDN加速节点(如图示灰色箭头)。当客户端访问a.cdntest.online时,首先还是向本地DNS服务器请求域名解析。本地DNS服务器接收请求后,解析出a.cdntest.online的CNAME别名记录,并向腾讯智能DNS服务器发起递归查询。腾讯智能DNS服务器结合自研的GSLB调度系统,向本地DNS服务器返回最佳CDN节点的IP地址,并最终返回给客户端。客户端根据返回的IP地址访问到最佳的腾讯云CDN加速节点。若该节点上有相应资源的缓存,节点服务器就会将资源直接返回给用户。若该节点上没有相应资源的缓存,或缓存已过期,节点将通过内部路由向a.cdntest.online网站服务器(即源站)进行回源。当源站接收到请求后,将返回数据。数据经内部路由返回,并缓存至CDN加速节点,最终客户端获得数据。

通过两个过程的对比,可以发现:访问未经加速的网站,客户端需连接至境外的服务器,地理距离远,且受网络波动影响大,访问速度将会受到较大的影响;而经腾讯云CDN加速的网站,客户端可以访问至就近的、同一运营商的加速节点获取资源,即使是回源过程也是通过腾讯云的内部网络传输,访问稳定,速度更快。

实验原理

2. 实验环境

2.1 实验操作环境

本实验要求:

  • 运行Microsoft Windows,可以接入互联网的笔记本电脑或者台式机
  • 能够通过浏览器访问 腾讯云官网
  • 能够使用远程桌面工具登录云服务器

2.2 实验的数据规划表

数据项

数据

说明

腾讯云账号

账号:xxx 密码:xxx

涉及产品:私有网络、云服务器、域名注册、域名管理、云解析、CDN

备案的域名

cdntest.online

涉及域名:a.cdntest.online、b.cdntest.online

3. 实验流程

3.1 实验流程图

实验流程

3.2 实验流程介绍

本实验首先创建腾讯云私有网络,并在私有网络内使用Windows Server镜像创建两台云服务器,部署简单的企业内网环境。

然后在两台云服务器上安装IIS角色,提供网站服务。

接下来,使用腾讯云域名注册服务购买一个二级域名,并在云解析中为IIS网站添加主机记录。

最后,将其中一台云服务器的域名接入腾讯云CDN实现加速。

注意:使用腾讯云CDN加速静态网站,只需把一个网站的域名接入到CDN服务即可。本实验设置两个网站主要用于CDN加速后与未加速的对比。

4. 实验步骤

4.1 任务1 创建云资源

【任务目标】

在腾讯云上创建私有网络,并在其中创建两台云服务器实例,以模拟简单的企业内网环境。后续的相关部署都在这个环境上进行。

【任务步骤】

1.登录腾讯云,新建私有网络VPC

进入 腾讯云官网,点击右上角的【登录】,并使用腾讯云账号登录。

登录后,点击右上角的【控制台】,进入腾讯云控制台总览页。

进入控制台总览页

在腾讯云控制台总览页中,鼠标依次悬停【云产品】-【网络】,并点击【私有网络】进入私有网络控制台。

进入私有网络控制台

在私有网络控制台中,选择地理距离较远的地域。本实验使用“多伦多”地域。

CDN是通过使用户就近访问高性能加速节点获取资源的方式实现加速。为了更好地体现CDN的加速效果,使用地理距离较远的地域。

选择地域

点击【新建】执行私有网络新建操作。在弹出的窗口中,配置VPC和子网的名称及CIDR。除此以外,还可以选择初始子网的可用区。配置完成后,点击【创建】即可。本实验配置的参数如图所示。

创建私有网络和子网

2.创建两个云服务器实例

创建云服务器的步骤,请参考课程“CVM自定义镜像操作实战”中“4.2 任务2 创建自定义镜像”的步骤1和步骤2。

云服务器的关键配置参照下表:

计费模式

地域

可用区

私有网络

所属子网

实例规格

镜像类型

按量计费

多伦多

多伦多一区

cdntest

subnet01

标准型S2,8核32GB

公共镜像:Windows Server 2016 数据中心版64位中文版

存储

带宽

公网IP

安全组

50GB系统盘

按使用流量:1MB

免费分配公网IP

新建安全组:放通ICMP、放通TCP:22、放通TCP:3389、TCP:80、放通内网

实例名称

设置密码

实例数量

a.cdntest.online、b.cdntest.online

密码认证

2台

创建完成后将可以在实例列表中看到相应的云服务器实例。

云服务实例

注意:两台云服务器实例分别命名为a.cdntest.online和b.cdntest.online仅用于在腾讯云上辨识两台云服务器,并不是配置它们的域名。

4.2 任务2 在云服务器实例上部署IIS网站

【任务目标】

在两台云服务器实例上安装IIS角色,部署静态网站。

【任务步骤】

1.使用远程桌面登录云服务器实例a.cdntest.online

云服务器实例提供多种登录方式,本实验使用Windows远程桌面工具登录。

在腾讯云服务器控制台中,复制实例a.cdntest.online的公网IP,用于远程连接。

复制云服务器实例的公网IP

在本地计算机中,键入【Win】+【R】打开“运行”窗口。在输入框中输入“mstsc”,并点击确定。

打开远程桌面

在弹出的远程桌面窗口中粘贴实例a.cdntest.online的公网IP,并使用管理员凭据连接。

在使用远程桌面连接时,会出现无法验证远程计算机身份的提示。在这一步骤中,选择【是】,信任云服务器实例。

远程桌面窗口
输入凭据
信任云服务器

2.在云服务器实例a.cdntest.online上安装IIS角色

远程登录到云服务器实例a.cdntest.online后,点击左下角的【windows】,并打开服务器管理器。

登录到云服务器后,若服务器管理器已经打开,则无需再次打开。

打开服务器管理器

在服务器管理器中点击【添加角色和功能】,进入“添加角色和功能向导”。

添加角色和功能

在“添加角色和功能向导”的“服务器角色”一步中,勾选“Web服务器(IIS)",并在弹出窗口中点击【添加功能】。其他步骤均保持默认配置,点击【下一步】即可。

安装IIS角色

最后,确认配置无误后,点击【安装】即可。

确认安装

安装完成后,点击【关闭】即可。

安装完成

在本地客户端上打开浏览器,使用云服务器实例a.cdntest.online的公网IP进行访问。建议使用Chrome浏览器。

在云服务器上,完成IIS安装后,网站服务已经可以使用。当客户端发起访问请求时,将可以访问到云服务器C:\inetpub\wwwroot路径下的默认内容。默认内容是一张名为iisstart的PNG图片,如下图所示。该图片属于静态数据,可以使用CDN实现加速。

访问IIS网站

3.登录云服务器实例b.cdntest.online,并安装IIS角色

按照“任务2 在云服务器实例上部署IIS网站”中的步骤1和步骤2,登录云服务器实例b.cdntest.online,并安装IIS角色。

4.3 任务3 使用腾讯云域名注册购买域名

【任务目标】

使用腾讯云域名注册服务购买二级域名,并为两台云服务器实例分配FQDN,用于HTTP访问及CDN加速。

【任务步骤】

1.购买二级域名

在腾讯云控制台的搜索框中输入“域名注册”进行查找,并进入域名注册操作台。

进入域名注册操作台

在域名注册操作台中,查询目标域名。

查询域名

在查询结果中,把域名加入购物车。

注意:本实验使用cdntest.online域名进行演示,您在实验时,可根据自己的喜好,注册特定域名。已被注册的域名将无法购买。

把域名加入购物车

在页面右上角,结算购物车中的域名。

结算

购买完成后,回到腾讯云控制台总览页。鼠标依次悬停【云产品】-【域名与网站】,并点击【域名管理】进入域名管理控制台。

进入域名管理控制台

在域名管理控制台中,将可以看到购买的域名。

查看域名

完成域名购买后,需要在注册成功后5天内完成实名认证。若在规定时间内未通过实名审核,注册局将暂停解析(Serverhold),您的域名无法正常访问。

2.使用云解析创建主机记录

在域名管理控制台中,找到购买的域名条目,点击右侧的【解析】,进入DNS解析(云解析)页面。

进入域名解析

在DNS解析页面中,点击【添加记录】执行添加主机记录的操作。

添加记录

在弹出窗口中,分别填写两台云服务器的主机记录和记录值,其余内容保持默认,然后点击【保存】即可。

添加a.cdntest.online的主机记录
添加b.cdntest.online的主机记录

添加完成后,可以在记录列表中查看到相应的主机记录。

查看主机记录

3.使用域名访问IIS网站

完成步骤2中的主机记录添加后,客户端将可以使用域名访问IIS网站。

使用域名a.cdntest.online访问
使用域名b.cdntest.online访问

4.4 任务4 使用腾讯云CDN加速IIS网站

【任务目标】

将域名a.cdntest.online接入腾讯云CDN,以加速其静态内容。

【任务步骤】

1.接入域名

在腾讯云控制台中,鼠标依次悬停【云产品】-【CDN与加速】,并点击【内容分发网络】进入内容分发网络(CDN)控制台。

首次使用CDN服务需要先进行开通。

进入CDN控制台

在CDN控制台中,依次点击【域名管理】-【添加域名】,进入接入域名的配置窗口。

添加域名

在弹出窗口中,做以下配置:

  • 在“域名”框中,填写需要接入的域名,也就是a.cdntest.online。系统可以自动识别域名是否已经备案,只有合法的域名才能实现接入。
  • 在“源站地址”中,写入接入域名的公网IP,也就是a.cdntest.online的公网IP地址。
  • 其余内容保持默认即可,最后点击【确认提交】。
接入域名

提交接入请求成功后,域名配置将下发至全网节点,因此会经过一个“部署中”的状态,最后进入“已启动”状态。进入“已启动”状态的域名将可以实现加速。

域名配置下发时间约5-10分钟,请耐心等待。等待一定时间后可以刷新网页查看状态是否已经更新。

部署中
已启动

通过以上的配置,源站的内容已经分发至腾讯云CDN的加速节点上,但客户端使用域名a.cdntest.online进行访问时,还是解析出源站的IP地址,而不是最佳节点的IP地址。因此,接下来需要在云解析中配置CNAME记录,使客户端请求域名解析时,能根据CNAME记录的指向,向腾讯智能DNS进行递归查询,从而获得最佳节点IP。

2.配置CNAME

当域名接入腾讯云CDN服务后,将生成一个CNAME别名记录。在“域名管理”页面中,点击域名ID,进入详情页,并复制其CNAME。

点击域名ID
复制CNAME

复制CNAME后,鼠标依次悬停【云产品】-【域名与网站】,并点击【云解析】进入云解析控制台。

进入云解析控制台

点击域名条目右侧的【解析】进入记录管理页面,并删除a.cdntest.online的主机记录。

注意:配置CNAME记录前,先删除主机记录,否则两者会冲突。删除主机记录后,云解析将无法解析该域名,只能根据后续配置的CNAME记录,向腾讯智能DNS进行递归解析,由此获得最佳节点的IP地址。

删除主机记录

删除主机记录后,点击添加记录,执行CNAME记录的添加。

  • 修改“记录类型”为CNAME;
  • 在“主机记录”中填入主机名“a";
  • 在“记录值”中粘贴CNAME的值。
  • 最后,点击【保存】即可。
添加CNAME记录

注意:复制CNAME时,可能会连同空格字符一起复制到粘贴板。因此,把CNAME复制到“记录值”内容框后,请检查前后是否有多余的空格。另外,CNAME生效需要一定时间,不同的DNS服务商时间略有不同,一般在半小时内生效,可以通过nslookup的方式来查询CNAME是否生效。

在本地计算机中,键入【Win】+【R】打开“运行”窗口。在输入框中输入“cmd”,并点击【确定】,打开cmd命令行工具。在cmd命令行工具中输入以下命令,查看CNAME配置是否生效。

nslookup -qt=cname <加速域名>
验证CNAME配置

5. 实验验证

1.对比两个IIS网站的请求响应时间

在客户端上打开浏览器的“设置”界面,在【隐私设置和安全性】-【清除浏览数据】中清除数据。本实验使用Chrome浏览器进行演示。

清除数据

重新启动浏览器,并键入F12,打开浏览器“开发者工具”窗口,并点击其中的“Network”。

“开发者工具”窗口

分别访问a.cdntest.online和b.cdntest.online,记录并对比网站的响应时间。

访问a.cdntest.online
访问b.cdntest.online

注意:建议重复该步骤进行多次测试,避免偶然性因素对实验的影响。

通过以上对比可以发现:使用腾讯云CDN加速后的a.cdntest.online明显比未加速的b.cdntest.online响应时间更短,具体时间受客户端网络环境影响。

2.查看CDN实时监控及数据分析内容

在CDN控制台的“服务概览”页面,点击“流量趋势”模块的【查看详情】进入“访问监控详情”页面。

进入“访问监控详情”页面

在该页面中,配置筛选项进行查询。

  • 选择要查看的日期。如果要查看当天的流量则保持默认,选择【今天】即可;
  • 修改“统计域名”为您所使用的加速域名。本实验使用a.cdntest.online;
  • 其余选项保持默认,并点击【查询】即可。
筛选项配置

由于实验测试流量较少,“流量详情”曲线图中无法看到数据,但在下方的“流量排行”中可以看到准确的流量数据。

查看流量数据

修改“访问监控详情”的查看内容为“流量命中率”,并保持同样的筛选项配置,以查看该域名的平均流量命中率。

查看流量命中率

注意:访问监控数据可能存在一定的延迟,若查无数据,可以稍后再行查看。

6. FAQ

1.无法远程登录到云服务器如何解决?

答:请参照课程“Windows远程桌面故障排查思路”指示进行排查。

2.安装IIS角色后,无法通过公网IP访问该服务器如何解决?

答:请切换浏览器进行访问,建议使用Chrome浏览器。若切换浏览器后仍无法访问,请检查云服务器的安全组已放通HTTP:80端口,以及云服务器所在子网没有关联限制HTTP流量的规则;如果安全组和ACL均没有限制HTTP流量,使用ping命令测试是否可以连通IIS服务器(需要安全组和ACL放通ICMP流量),若能收到回复,说明网站部署有误,建议删除IIS角色重新安装;若不能收到回复,请检查网络。

3.实验验证中,进行多次测试的原因是什么?

答:进行多次测试的原因是为了避免偶然性因素影响实验结果,主要包括:1.加速节点中的缓存数据可能过期,缓存过期后需要回源,回源过程虽比Internet访问快,但效果相对没有那么明显;2.Internet访问受网络波动影响大,同一个客户端前后的访问请求,获得响应的时间可能都会相差几分钟甚至十几分钟。

7. 注意事项

如实验资源无需保留,请在实验结束后及时销毁,以免产生额外费用。