帮助中心 >  技术知识库 >  对象存储 >  对象存储教程 >  基于蓝队云CDN和对象存储的简单用法

基于蓝队云CDN和对象存储的简单用法

2020-09-11 10:10:37 2726

       基于蓝队云CDN和对象存储的简单用法

       关于cdn和对象存储的概念和原理这边不做过多的介绍,我用简单的比喻来告诉你它大概是什么东西,你知道有什么用,怎么用就行了。这边不用专业名词,通俗易懂。技术知识层面的讲解请自行网上查阅。

 

 一.CDN简单理解

        通俗解释:将您的站点数据进行预先缓存,当你访问时,就近请求最近最合适的缓存数据,使你的网站能更快打开。(作为使用者而非技术人员,你可理解为能让你的网站更快速地打开) 

 

1.jpg

 

       CDN 的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的 负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞, 提高用户访问响应速度和命中率。CDN 的关键技术主要包括了节点调度、节点负载 均衡和内容存储、分发、管理技术。

       CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高Internet网络中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。

 

 

二.对象存储的简单理解

       通俗解释:对象存储可以简单理解为用来存储图片、音频、视频等非结构化数据的数据池。相对于主机服务器,具有读写速度快,利于分享的特点。(作为使用者而非技术人员,你可理解为一个可远程管理的高效云盘,只不过,对象存储有自己的CPU、内存、网络和磁盘系统,具备一定的智能。)

       按照服务或接口,存储大体上可分为三类:块存储(读取快共享差)、文件存储(共享强读取慢),以及对象存储读写(速度快且利于共享)。

      对象存储相比文件存储更加简洁,抛弃了命名空间、文件目录等结构,更加扁平化,在使用、扩展、维护方面更加符合大众化思想。操作主体由文件变为对象,对象的操作主要以Put、Get和Delete为主,十分类似Java的HashMap,只不过对象存储中的对象不支持修改。总体来说,对象存储是为了克服块存储和文件存储的缺点,并发挥它们各自的优点而出现的。块存储的优点是读写速度快,不太适合共享。文件存储的优点是利于共享,缺点是读写速度慢。对象存储不仅读写速度快,而且适用于分布式系统,利于共享。常见的开源对象存储有Ceph、Swift,目前阶段,Ceph比Swift更加成熟、稳定。

 

 

三.CDN的具体使用

2.jpg

1,在购买开通CDN服务后,填写域名相关配置及加速服务相关配置。

登录 CDN控制台 ,选择域名管理,这个页面可以查看您添加的所有加速域名和状态。点击 添加域名:

3.jpg

填写基本信息:输入加速域名(一般使用 子域名 或泛域名,如 cdntest.example.com)、选择合适的业务类型、源站。

注意事项:

a. 加速域名:加速的域名请先完成在中国大陆的 ICP 备案,同时建议进行公安网备案。

 

b.通信协议:CDN加速默认是使用HTTP访问,如果源站有配置SSL证书,这个只和CDN的回

源方式有关联,如果需要加速域名使用HTTPS,那么在CDN设置里也需要上传加速域名的证书,上传证书开启后默认是HTTP和HTTPS两种方式都可以访问,如果只需要HTTPS访问,那么可以在CDN配置里开启HTTP强制跳转HTTPS

 

c. 源站配置:

域名--支持 多个 源站域名。注意:源站域名 不能 与加速域名相同,否则会造成循环解析,无法回源。例如您的源站域名为img.yourdomain.com,则加速域名可设置为cdn.yourdomain.com

对象存储--在此蓝队账号购买过对象存储服务可直接选择。

ip地址--支持 多个 服务器外网 IP

 

d.缓存配置--CDN主要使用的就是静态资源缓存到多个CDN节点从而形成加速,所以缓存的设置直接影响到加速效果,一般厂商配置是发布/目录下所有文件默认30天,可自行调节,最短0秒无缓存.

 

e.url参数--

开启过滤参数的作用是忽略URL请求中"?"之后的参数,提高CDN缓存的命中率。

开启【过滤参数】后,访问URL无需匹配"?"之后的参数,元素就可命中CDN的缓存,提高CDN的命中率。例如:

第一次访问http://www.landui.com****.com/1.jpg,CDN没有缓存,直接回源访问数据。

第二次访问http://www.landui.com****.com/1.jpg?test1,由于开启了过滤参数"?",所以"?"后面的参数无需匹配,即可命中CDN缓存 http://www.landui.com****.com/1.jpg。

后续访问,不论"?"后面带的是什么参数,均命中缓存http://www.landui.com****.com/1.jpg。

 

关闭【过滤参数】后,访问URL需精确匹配"?"之后的参数,提高请求的精确性。例如:

第一次访问http://www.landui.com****.com/1.jpg,CDN没有缓存,直接回源访问数据。

第二次访问http://www.landui.com****.com/1.jpg?test1,由于关闭了过滤参数"?",所以"?"后面的参数需精确匹配,即无法响应CDN缓存内容http://www.landui.com****.com/1.jpg,需要重新回源拉取http://www.landui.com****.com/1.jpg?test1。

后续访问,"?"后面的参数要与CDN缓存精确匹配才能响应CDN缓存内容。只有精确匹配"?"后面的参数,才能响应CDN缓存内容。

4.jpg

2.域名配置完成后,系统会为您分配对应的 cname,对加速域名做别名解析到对应的cdn 域名。

5.jpg

到此配置完成,为了方便理解,对一些可能用到的名词做一下解释;

加速域名:需要哪个加速域名就用哪个,加速原理参考上面的解释,部分厂商(也有自建的)不支持泛域名加速,大厂如BAT是支持的,具体可咨询对应的厂商,使用泛域名加速,如*.baidu.com,则baidu.com下的所有二级域都会使用CDN加速。

源站:即网站数据源,源服务器,CDN加速需缓存资源,都会向源站获取,源站可使用IP或域名(源站域名不可与加速域名重复)。

回源:使用CDN加速后,CDN向源站请求资源并缓存到节点的过程。CDN默认是使用HTTP的80端口进行回源,如果源站有SSL配置需要443端口回源或者自定义其它端口需要在CDN的设置里配置回源端口,这里也是使用CDN后很常见的一个报错502 Bad Gateway。如果是使用80或443端口进行回源,还需要注意的一个设置是回源协议设置,默认应该是跟随,如果确定是使用80或者443则改为http或https,有一次这里我默认用的跟随,但是回源使用443,这个跟随设置没有生效,找了半天才找到原因。

命中率:用户访问的时候,命中缓存的概率,如果该CDN节点上如果已经缓存了用户要请求的内容,则直接返回。(这样就算命中缓存)。CDN加速主要是静态资源的缓存到各节点,用户访问的时候直接从缓存中获取资源,而如果是动态请求,如网站中的文件(asp、jsp、php、perl、cgi)、API 接口、数据库交互请求等,或者是第一次被用户请求又没有预热过的资源,则无法命中缓存需要回源,缓存命中率的下降则相应带来的是加速效果很差。

刷新预热:

刷新功能是指提交 URL刷新或目录刷新请求后,该加速域名下的所有 CDN节点里的缓存内容将会被强制过期,当用户再次向 CDN 节点请求资源时,CDN 会直接回源站获取对应的资源返回给用户,并将其缓存。简单来说刷新就是清除CDN节点缓存。

预热功能是指提交 URL预热请求后,源站将会主动将对应的资源缓存到 CDN节点,当用户首次请求时,就能直接从 CDN 节点缓存中获取到最新的请求资源,无需再回源站获取。简单来说预热就是提前在CDN节点缓存。

刷新支持url和目录刷新,预热只支持url预热,每家厂商每日的限制次数不一致,换过来理解刷新会降低缓存命中率,预热则会提高缓存命中率。

 

判断一个域名是否使用了CDN?

ping 域名是否为CDN的cname解析或nslookup

常见报错排错思路:

403:加速域名未添加到CDN(也就是cname解析问题),源站响应403,CDN鉴权问题,防盗链问题,IP黑白名单问题,UA黑白名单问题,URL违规被屏蔽。其中的鉴权、防盗链、黑白名单均属于设置问题,可检查是否自己设置有误。前两个问题可使用host本地解析或者curl命令测试,我常用的方法是先ping一下域名得到IP是否CDN节点(可在CND工具里使用IP检测),或者使用nslookup命令可以直接查询到该域名的cname解析记录(最下面的就是,如果有cname解析的话),确认正确解析后,再使用host本地解析,将加速域名解析到源站IP,然后再浏览器访问该URL,确认是否源站有问题。

 

404:回源host或者回源端口配置有误,再就是源站根本没有该资源也是404,。

 

502/503/504:主要检查源站是否正常,是否源站网络问题导致回源超时?如果使用的回源域名,该域名是否正确解析到源站?源站是否有安全组规则将CDN节点给屏蔽了?然后查看CDN设置,回源端口对应源站端口是否设置有误(80,443,自定义?比如说回源端口设置的443,但源站没有使用证书,这里也可以使用本地host解析源站的方式输入https域名验证源站是否开启SSL),回源协议是否设置正确(HTTP还是HTTPS)。

 

 

四,对象存储的使用

配合CDN使用,简单讲一下为什么要用对象存储服务?

1、网站数据动静分离,大幅提升网页性能

一般情况下,我们都是建议使用主机服务器和对象存储分工合作的方式来存储网站数据。主机服务器主要负责存储网站的动态数据,对象存储则用来存储网站的静态文件。从而实现网站的动静分离,当用户访问一个网站时,分别从主机服务器和对象存储的服务器同步读取数据,可以大幅的提升网页性能。

理想情况下,还会结合内容分发网络来使用,这个我们以后会说到。

 

2、单独的文件管理界面,管理网站文件和本地电脑一样方便

有单独的管理控制台。你不必打开网站,就可以像使用网盘一样使用对象存储来管理你的网站文件,除了上传、下载、预览等常用功能,还可以直接在对象存储上进行图片处理/媒体转码/数据分析等。

 

3、本质是”内置大容量硬盘的分布式服务器“,同一个文件支持跨域共享

对象存储的本质是“内置大容量硬盘的分布式服务器”,对象存储有自己的CPU、内存、网络和磁盘系统,具备一定的智能,同一个对象存储数据池可以新建不同的存储桶(bucket),分别用来存储不同网站的数据,彼此互不干扰。而且同一个文件可以引用到不同的网站,可以有效的减少数据冗余。

 

4、储存节点多,支持跨地域实时同步,实现异地容灾

假设你的图片等数据存储在你自己的服务器上,只能通过定期数据备份的方式保护你的数据。数据量大的话,每次备份都需要大量的时间和占用大量的磁盘空间,管理起来还不方便。

如果你的数据放置在对象存储的数据池了,并与网站关联。那么静态文件的备份就可以交给对象存储。你只需要对网站少量的动态文件进行备份。省时省力。

 

比如我使用对象存储,我在离我最近的节点【深圳】来存储网站的图片等静态文件。但是考虑到极端情况,比如深圳节点由于突然停电,可能导致数据全部丢失。但如果之前我选择了【杭州】作为第二个存储节点,而且设置【深圳】节点的数据实时增量同步到【杭州】节点。那么就算深圳节点的数据丢失了,但是我在杭州的数据还是可以使用。等到恢复供电,我再把数据从杭州节点同步回深圳节点就可以了。这就是我们说的异地容灾。

 

5、成本低,资源弹性伸缩,按需付费

无需传统硬件的采购、部署和运维,从而节省了运维工作和托管成本。蓝队云对象存储按需购买的便捷性,能够有效避免存储及带宽资源的闲置浪费。不像服务器的流量是固定的,包含在服务器的费用里面了。无论你用或不用,都是这么多。对象存储可以是根据你的实际使用量进行计费。

 

6、节省服务器空间

为什么选择将这一点放在最后说呢?因为现在服务器的价格还算实惠,活动也比较多。大部分站长已经不存在服务器空间不够用的问题。而且对象存储的出现也不是为了解决服务器空间不够用的问题。而是为了结合【块存储】、【文件存储】各自的优点,从而实现高效的文件读写和分享。

 

 

 

 

 

 

 

 

 

 

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: