素材巴巴 > 程序开发 >

百度云部署CDN

程序开发 2023-09-10 20:58:32

什么都逃不过“真香定律”,这不,几星期前我还信誓旦旦说,能用技术解决的问题就没必要花钱。是什么让我上了CDN这条船?


先看效果,有个页面恒定有个pdf文件要加载,再加上pdf阅读器组件本身就有300多KB,往往看见第一页pdf内容时,基本都在30秒开外了,用户体验极其不好。

在这里插入图片描述

然而经过CDN优化后,速度提升了10倍不止!

在这里插入图片描述
在这里插入图片描述
图片,js,css等资源,加载也明显快了数倍!
主机响应时间也是如此!
在这里插入图片描述
事情经过是怎样的呢?且听我娓娓道来!


面对1M带宽,地处华东机房的阿里云ECS来说,服务器节点距我还是挺远的,架不住这配置便宜呀!于是部署在这样配置服务器上的应用就显得捉襟见肘了,常见的就是页面加载缓慢,而且一些特殊页面,譬如上文提到的需要加载pdf的页面,往往等十几秒还是一篇空白!这样的效果怎么行!

于是,我走上了漫漫优化之路。能用技术解决的,就没必要花钱了,这是我的基本准则,然而尽自己所能做了一些优(无)化(用)工作后,我有点懈怠了。优化到最终,也只能是前后端动静分离,再使用一些基于数据驱动的前端框架,如vue,改造前端工程,但这代价有点大啊!我只是做个简单优化而已啊,这到最后都快重构一个系统了!不划算!费时间!对不对!(PS:技术也不允许我做多厉害的优化啊-_-)

车道山前必有路,就是这么说的。不偏不巧,看到了某度的产品宣传,免费100GB CDN资源包,6个月!得嘞,不用白不用!


灵魂三问:


什么是CDN?

内容分发网络CDN(Content Delivery Network)将源站内容分发至遍布全国的加速节点,缩短用户查看内容的延迟,提高用户访问网站的响应速度与网站的可用性,解决网络带宽小、用户访问量大、网点分布不均等问题。
在这里插入图片描述
CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

如,百度智能云CDN加速原理:
在这里插入图片描述
如上图所示,CDN加速详细步骤如下:

1.网站用户查询 my.com 的地址

2.请求权威DNS

3.返回配置的CNAME: my.com.a.bdydns.com

4.请求my.com.a.bdydns.com对应的IP

5.根据智能调度返回离用户最近的接入点IP

6.LocalDNS返回my.com的IP地址并缓存

7.向CDN节点发起HTTP/HTTPS请求,访问my.com的内容

8.CDN 通过百度智能云加速链路,将请求转发至多线中心节点

9.中心节点向源站发起回源请求

10.源站向中心节点返回响应

11、12.中心节点、边缘节点将响应返回用户,并缓存响应内容

使用场景?

多领域、多业务加速

CDN不仅能为地图、图片、文档在内的静态网页加载提速,也可为音频、下载、游戏等业务提供加速服务,使网站可被高速访问,有效提升网站的用户体验。

完整介绍可移步:CDN 内容分发网络

如何使用?

各大厂商使用方法大同小异,这里就以百度云为例了。
在这里插入图片描述
简单概括下就是:购买CDN -> 接入并配置 -> 配置CNAME域名解析

原有主机上部署的系统无需做任何源码级的改动!简直太便捷,有木有!


详细配置步骤:

1、购买服务
在这里插入图片描述
2、生成实例
在这里插入图片描述
3、添加待加速的域名
在这里插入图片描述
PS: 详细配置,CDN API帮助文档有详细描述

4、配置DNS解析

因为我的域名是在万网购买的,ECS使用的也是阿里云,所以解析直接使用了阿里云的云DNS解析。这是主机和CDN不是同一个厂商的常见情况,如果都是同一个厂商的产品,配置应该更容易!
在这里插入图片描述在DNS解析处配置一个CNAME解析。注意:CNAME和A解析不能共存,所以需要把默认A解析的删掉。
配置DNS成功后,大概等10分钟的平均TTL刷新,CDN就成功了!

Q:如何检测CDN是否成功呢?
A: 这里提供几种方法,
①在不同地方ping域名,看ip是不是源地址。
在这里插入图片描述
如图所示,这个明显就已经成功了,是百度的节点。不是我的源主机ip
②使用站长工具 http://ping.chinaz.com/ ,原理同上,看下全国的节点状态。
③在某个页面F12看响应情况。
在这里插入图片描述
可以看到,远程主机地址已经是动态的,而且响应头中有Age。
详情移步:http响应头中的data和age


至此,http,80端口的应用就成功开启了CDN!如果你的网站是https的,请继续往下看,还需要在CDN控制台配置https


划重点!!!如果你的应用是https,也就说默认端口是443的,你还需要在CDN管理中进一步配置https,这一步,需要更多的前期准备工作。

https配置准备工作:


1、如何将pfx证书转为pem证书?
A: 例如,笔者的证书是在阿里云申请的pfx格式证书,百度的CDN控制台支持pem证书,怎么办?百度CDN文档中说明了转换方式,但前提是你的机器安装了openssl工具,才能转换。linux好说,有内置openssl,可是windows就需要一系列工作了。所以直接使用这个网站:在线SSL证书转换工具
注意:阿里云的证书,每次从控制台下载,密码都是不同的。笔者就是直接将服务器上的拷下来了
在这里插入图片描述
如图,一个pfx证书,一个秘钥。

转换后的pem:
在这里插入图片描述
用记事本打开:
在这里插入图片描述
在这里插入图片描述
这里注意:接下来在百度云手动添加证书时,不要拷贝Bag Attributes,只拷贝start==end之间的数据,上面是证书,下面是私钥。按照下图这种格式:

证书:
 ---BEGIN CERTIFICATE--
 这是pem中第一段
 --END CERTIFICATE--
 --BEGIN CERTIFICATE--
 这是pem中第二段
 --END CERTIFICATE--私钥:
 --BEGIN PRIVATE KEY--
 这是私钥
 --END PRIVATE KEY--
 

2、证书我没在百度云申请,可以添加吗?
A: 可以。
在这里插入图片描述
第三方的证书,百度支持pem格式。这里就需要上一步介绍的证书格式转换了。


–END–

在这里插入图片描述
可以看到,缓存命中率很高,只有很少一部分是源地址。
在这里插入图片描述

后记:以上便是CDN的配置过程,如有疑问,可在下方留言。


标签:

上一篇: beego框架总结 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。