前言
鉴于本博客是部署在Github上的,作为一个服务器在国外的网站,国内的访问会出现不稳定的情况,有些朋友反馈访问速度慢,有些朋友反映说网站根本打不开,虽然会和使用的网络有关系,但总体还是网站本身部署的地方访问不稳定,因此,我便开始了寻找提高博客访问速度的方法,鉴于访问网络的不稳定性,我决定从网络加速方面入手,也因此开始了解CDN方面的内容。
经过最近一段时间的了解,也大概对CDN有了些许的了解,同时也通过又拍云CDN为网站提高了全站加速,那么下面就让我来说说关于CDN的一些知识,以及如何使用又拍云CDN为博客进行加速吧。
CDN是什么
概述
CDN的全称是 Content Delivery Network
,即内容分发网络,所以CDN本身是构建在现有网络基础之上的虚拟网络,依靠分布在不同位置的服务器,通过各个CDN在自己构建的中心平台的负载均衡、内容分发、调度等功能模块,让用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
小型的CDN服务提供商可以是个人部署的一台服务器(虽然没啥用)、或者是在单个国家部署的服务器提供CDN服务,而大型CDN则是在世界各地都拥有自己的数据中心的服务提供商,通常购买CDN服务都会选择大型的CDN服务提供商。
CDN的组成
CDN虽然是一个虚拟网络,但是本身还是需要物理设备承载以及技术手段配合去的,因此CDN网络中包含的功能实体包括内容缓存设备、内容交换机、内容路由器、CDN内容管理系统等组成。
- 内容缓存设备:内容缓存设备就是在不同地区的服务器,也是各个CDN网络节点,位于用户接入点,是面向最终用户的内容提供设备,可缓存静态Web内容和流媒体内容,实现内容的边缘传播和存储,以便用户的就近访问。
- 内容交换机:内容交换机和我们认知的交换机作用是差不多的,也是位于用户接入集中点,可以均衡单点多个内容缓存设备的负载,并对内容进行缓存负载平衡及访问控制。
- 内容路由器:内容路由器和我们认知的交换机作用是差不多的,通过部署在设备上的负载均衡系统把用户的请求调度到适当的设备上;负载均衡系统会动态均衡各个内容缓存站点的载荷分配,为用户的请求选择最佳的访问站点,提高网站的可用性;作为路由器,是可以通过站点与用户的临近度、内容的可用性、网络负载、设备状况等一些因素去制定策略定制内容路由器的负载均衡系统的侧重点。(负载均衡系统是整个CDN网络的核心,它的准确性和效率基本就是代表整个CDN网络的性能和效率)
- CDN内容管理系统:内容管理系统负责整个CDN的管理,是可选部件,作用是进行内容管理,如内容的注入和发布、内容的分发、内容的审核、内容的服务等。
CDN的功能
CDN的功能也可以说是使用CDN的好处,从功能来看,CDN的功能作用大不大,取决于网站的大小、相对于核心流量源的位置以及产生的流量数量。
也就是说具有服务于一个小地理区域的物理位置的本地业务不会从CDN中获益太多的好处,而一个电子商务网站,需要更广泛的覆盖面,或者网站由于各种原因从不同的地点产生大量流量,那么一个快速、高效的CDN将帮助保持竞争优势,并提供搜索引擎优化优势。
CDN的功能(好处)归纳起来有如下几点:
- 节省骨干网带宽,减少带宽需求量
带宽是托管服务的最大开销之一,通过增加存在点来节省处理流量所需的带宽,可以降低成本。 - 提供服务器端加速,解决由于用户访问量大造成的服务器过载问题
延迟是造成网站高跳出率的最大因素之一,这是将信息从用户转移到源,然后再返回的时间增加了,这是由于存储阻塞导致读取文件的延迟,来自服务器的数据处理延迟,数据传输方式,如光纤网络与普通网络,传播,或数据从一个节点传播到另一个节点的速度,通过使用有效的交付网络,可以解决或至少减少这些问题。 - 提高安全性
当所有的数据传输都从一台服务器进行时,它会增加被攻击的风险性,如不使用CDN加速,服务器IP将暴露,使攻击者可以直接攻击服务器,而使用CDN加速,攻击者无法轻易攻击服务器。 - 提高内容分发并且降低网站自身建设和维护成本
高流量负荷加上硬件故障意味着比大多数网站能够承受的停机时间更多,通过将负载分散到多个内容交付系统,将减少基础设施和服务器的负担,同时多个访问节点的存在,也解决了网站分布不均的问题,不需要花费高成本去维护和优化网站的访问。
CDN的原理
- 基本原理:
采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
(简单来说,就是把你源站全部缓存到世界各地的数据中心的缓存服务器,你在北京访问,就是直接访问北京的缓存服务器中已经缓存好的内容,你在纽约就直接访问纽约的缓存服务器中已经缓存好的内容,直接通过缩短了用户和内容之间的网络距离,从而达到加速的效果) - 基本思路:
1、尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定;
2、通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上;
3、使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
博主的些许理解
- 通过上面的描述,大家应该基本理解CDN就是将将相同的数据存储在多个服务器,。当用户访问托管在CDN上的网站时,网络将使用离您地理位置最近的服务器智能地向您提供内容;
- 当一台服务器上的硬件出现故障,CDN可以快速将流量重新路由到下一台最好的服务器,从而限制甚至消除停机时间;
- CDN虽然常用于网站的托管,但也用于提供其他类型的可下载数据,例如软件程序、图像、视频和流媒体,云计算服务通常也通过内容分发网络提供,例如我们常用的淘宝看到的图片98%都是走的CDN的缓存。
CDN的使用
以又拍云CDN为例,可以加入又拍云联盟获取每月15G的免费流量。
用于博客全站加速
首先登陆又拍云控制台 ( 没有账号的按照提示注册然后再实名认证即可 ) ,接着找到CDN ( 有账号的直接打开这个链接登录即可 ),点击下图中的创建服务。
出现下图页面,按照下面图片中步骤:
1、服务名称处输入服务名称(例如我输入是ycblog),
2、加速域名填写博客之后的访问域名,
3、应用场景勾选全站加速,
4、回源协议勾选HTTPS
,
5、源站证书校验打开,
6、源站地址填写博客的园站地址或者IP,例如我的博客部署在Github那我就填写molipre.github.io
,如果部署在服务器可直接填写服务器的公网IP,
7、全部填写选择完成后点击创建等待即可。修改加速区域为全球加速:
1、点击性能优化,找到位于最后面的加速区域;
2、点击管理,会弹出加速区域选择窗口;
3、选择全球加速;
4、点击确定即可生效。如果你和我一样,在github上绑定了域名,则需要做以下修改:
1、点击配置中的回源管理,找到源站设置;
2、点击源站管理的管理按钮,弹出源站设置窗口;
3、在源站设置中,关闭源站证书校验;
4、通过终端ping
命令得到IP,在源站地址填写得到的IP,点击确定完成源站设置;
5、回到回源管理,找到回源host,点击回源host的管理按钮,弹出回源host设置窗口;
6、在回源host设置中,填写你在github绑定的域名,例如我绑定的是b.molipre.com
,再点击保存即可。此时你通过终端
ping
命令ping 加速域名
,就会得到又拍云的cdn域名
用于静态类资源
- 关于用于图片加速,请查看学会搭建自己的私人图床
- 关于静态资源,如
CSS
、JS
等,请查看使用Jsdelivr加快博客的访问速度
最后
- 至此,关于CDN的一些知识和应用便讲完了,文章篇幅比较长,如果能看到最后,非常荣幸!
- 那么,下一篇文章见,拜拜👋。