如何部署 CDN 网络

内容分发网络(Content Delivery Network),是在现有 Internet 中增加的一层新的网络架构,由遍布全国的高性能加速节点构成。这些高性能的服务节点都会按照一定的缓存策略存储您的业务内容,当您的用户向您的某一业务内容发起请求时,请求会被调度至最接近用户的服务节点,直接由服务节点快速响应,有效降低用户访问延迟,提升可用性。虽然距离并不是绝对因素,但这么做可以尽可能提高性能,用户将会觉得比较顺畅。这使得一些比较高带宽的应用(传输高清画质的视频)更容易推动。内容分发网络另外一个好处在于有异地备援。当某个服务器故障时,系统将会调用其他邻近地区的服务器服务,进而提供接近100%的可靠度。

今天这篇教程,就教大家部署腾讯云的静态内容加速 SCD,静态内容加速(Static Content Delivery,SCD)针对门户网站、电子商务、UGC 社区等业务场景,提供了强大的静态内容(如网页样式、图片、小文件)加速分发处理能力,极大地缩减了站点响应时间,实现复杂内容秒级加载,显著提升了网页用户的体验。

注册用户每月均可享受 10 GB 免费流量包,接入加速域名后于每月 1 号发放至您的账户。新开通 CDN 的用户还会在开通后的 6 个月内每月收到腾讯云赠送的 50 GB 流量包。

加速原理

假设您的业务源站域名为 www.test.com,域名接入 CDN 开始使用加速服务后,当您的用户发起 HTTP 请求时,实际的处理流程如下图所示:

详细说明如下:

  1. 用户向 www.test.com 下的某图片资源(如:1.jpg)发起请求,会先向 Local DNS 发起域名解析请求。
  2. 当 Local DNS 解析 www.test.com 时,会发现已经配置了 CNAME www.test.com.cdn.dnsv1.com,解析请求会发送至 Tencent DNS(GSLB),GSLB 为腾讯云自主研发的调度体系,会为请求分配最佳节点 IP。
  3. Local DNS 获取 Tencent DNS 返回的解析 IP。
  4. 用户获取解析 IP。
  5. 用户向获取的 IP 发起对资源 1.jpg 的访问请求。
  6. 若该 IP 对应的节点缓存有 1.jpg,则会将数据直接返回给用户(10),此时请求结束。若该节点未缓存 1.jpg,则节点会向业务源站发起对 1.jpg 的请求(6、7、8),获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(9),并返回给用户(10),此时请求结束。

部署CDN

申请CDN接入

在使用 CDN 服务前,您需要进行实名认证及 CDN 服务的开通,新用户登录 CDN 控制台 可以看到实名认证指引,单击前往认证可进行实名认证。完成实名认证后,进入 CDN 控制台,确认您的实名认证信息及选择服务内容,完成后单击下一步

CDN 提供了两种计费方式:流量计费、带宽计费,您可以根据业务模型选择合适的计费方式,更多详细说明请参见 计费说明。勾选同意服务条款后,单击【开通 CDN】即可开始使用加速服务。

接下来就可以开始接入域名了,点击左侧的域名管理按钮,然后再点击添加域名

然后在域名处填写你的域名,源站设置设置为你服务器的IP地址。其他暂时不管,我们点击确定按钮。

点击添加按钮后,我们还需要修改当前域名指向的地址,需要指向新的cname地址,我们点击进入域名管理按钮。

然后点击当前域名的管理按钮。

复制系统分配的CNAME域名test.techeek.cn.cdn.dnsv1.com

配置CNAME

接下来我们就可以配置test.techeek.cn的CNAME域名了,当然,每个人域名接入商可能不同,我这里以腾讯云域名管理为例。我们打开云解析的控制台页面,然后点击解析按钮。

接下来添加或修改当前域名的解析地址。我们找到当前域名的主机记录然后点击修改按钮。

记录类型修改为CNAME,解析记录修改为刚刚系统分配的test.techeek.cn.cdn.dnsv1.com

接下来耐心等待一段时间,我们就可以测试当前CDN是否生效了。

测试

在部署CDN前后,我们的服务器部署在四川成都,基本在居中的地理位置。我使用第三方测速工具站长之家-站长工具对当前网络进行测试,分为网站访问速度测试及Ping延迟测试,两次访问延迟都是越低越好。具体测试结果如下。

未部署CDN前

我们先来看看未部署CDN前的情况吧。

网站访问速度测试

我们看到在未部署CDN前,国内大部分地区访问延迟都在1200ms延迟以上,四川地区大面积超时应该是站长之家的当地测试服务器出了故障。如果是动态网站或图片视频网站,1200ms将会造成图片视频加载缓慢。我们的服务器部署在成都地区,周边省市访问延迟基本控制在400ms~800ms,但是新疆,广东等地区延迟过高,所以必须加CDN以控制延迟。

Ping延迟测试

我们看到Ping值大部分还是低于50ms,陕西地区大面积超时应该是站长之家的当地测试服务器出了故障。注意右侧表格,平均延迟82ms还是蛮高的。部分地区延迟甚至超过了100ms,总体来说情况还行,如果是游戏服务器,明显能感觉到延迟,所以还是需要优化。

部署CDN后

接下来看看部署完CDN后的情况

网站访问速度测试

我们看到接入CDN后,原来平均延迟由214ms降到了8ms,可见CDN提升还是非常明显的,对用户来说,最大的感觉就是访问速度加快了。视频播放更加流畅,从数据方面来说,推荐接入CDN服务。

Ping延迟测试

可以看到ping值最低甚至低于1ms以下,国内大部分节点延迟都控制在50ms以内,平均延迟由原来的82ms降到了现在的54ms,对游戏用户来说体验更加完美,丢包率低。所以非常建议大家接入CDN服务。

总结

现在,你学会使用CDN了嘛?当然,本次教大家只是使用的是静态内容加速,如果你有其他需求,可以试试负责下载加速的下载分发加速 DD,负责音视频加速的音视频点播加速 VCD,负责海外市场加速的海外加速 GCD,负责全链路网络加速的动态加速网络 DSA,还有守护安全的安全加速 SCDN。感兴趣的小伙伴快去体验下吧!优惠十分丰厚哦!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2605
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4798
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

30810
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2102
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

1990
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2506
来自专栏魂祭心

原 canvas绘制clock

4004
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

2898
来自专栏java 成神之路

使用 NIO 实现 echo 服务器

4507

扫码关注云+社区