从零开发短视频电商 利用CDN加速OSS图片传输

文章目录

什么是CDN

阿里云内容分发网络CDN(Content Delivery Network)是建立并覆盖在承载网之上,由遍布全球的边缘节点服务器群组成的分布式网络。阿里云CDN能分担源站压力,避免网络拥塞,确保在不同区域、不同场景下加速网站内容的分发,提高资源访问速度。

CDN优点:

  • 全网带宽输出能力达150 Tbps
  • 把静态内容缓存到边缘节点提高访问下载效率
  • CDN流量价格(0.17元/GB)比OSS流量价格(0.4元/GB)便宜
  • 降低带宽成本,隐藏源站地址提高安全性的同时提升下载速度、降低响应时间,提供流畅的用户体验

加速原理

假设您的加速域名为www.aliyundoc.com,接入CDN开始加速服务后,当终端用户在北京发起HTTP请求时,处理流程如下图所示。从零开发短视频电商 利用CDN加速OSS图片传输

  1. 当终端用户向www.aliyundoc.com下的指定资源发起请求时,首先向Local DNS(本地DNS)发起请求域名www.aliyundoc.com对应的IP。
  2. Local DNS检查缓存中是否有www.aliyundoc.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向网站授权DNS请求域名www.aliyundoc.com的解析记录。
  3. 当网站授权DNS解析www.aliyundoc.com后,返回域名的CNAME www.aliyundoc.com.example.com
  4. Local DNS向阿里云CDN的DNS调度系统请求域名www.aliyundoc.com.example.com的解析记录,阿里云CDN的DNS调度系统将为其分配最佳节点IP地址。
  5. Local DNS获取阿里云CDN的DNS调度系统返回的最佳节点IP地址。
  6. Local DNS将最佳节点IP地址返回给用户,用户获取到最佳节点IP地址。
  7. 用户向最佳节点IP地址发起对该资源的访问请求。
    • 如果该最佳节点已缓存该资源,则会将请求的资源直接返回给用户(步骤8),此时请求结束。
    • 如果该最佳节点未缓存该资源或者缓存的资源已经失效,则节点将会向源站发起对该资源的请求。获取源站资源后结合用户自定义配置的缓存策略,将资源缓存到CDN节点并返回给用户(步骤8),此时请求结束。配置缓存策略的操作方法,请参见配置缓存过期时间

如何配置使用

第一步 配置OSS开启CND加速

参考:阿里云CDN介绍以及如何配合OSS使用

第二步 配置CDN支持HTTPS

如果你滴网站不需要https那么这一步就不需要了,但是为了安全我们是建议使用滴哈。

当您开启HTTPS功能后,将产生静态HTTPS请求数计费数据。 价格( 0.05元/万次),可以购买对应资源包抵扣费用会更低。

一.在SSL证书产品购买证书

如果需要购买证书,您可以在SSL证书控制台申请免费证书或购买高级证书。如果已经拥有HTTPS证书,则自有证书需满足证书格式要求。详细信息,请参见证书格式说明

我们这里直接白嫖免费的哈注意注意哈!!!免费ssl证书要手动续约

选择免费试用证书,付款时是0元

从零开发短视频电商 利用CDN加速OSS图片传输
填写域名等信息进行申请
从零开发短视频电商 利用CDN加速OSS图片传输
验证DNS信息,提交审核,秒通过
从零开发短视频电商 利用CDN加速OSS图片传输
二.在cdn控制台配置HTTPS证书

HTTPS功能为增值服务,开启HTTPS将产生HTTPS请求数计费,该费用单独按量计费,不包含在CDN流量包内。HTTPS计费介绍,请参见增值服务计费

  1. 登录CDN控制台

  2. 在左侧导航栏,选择安全防护> 证书服务

  3. 证书服务页面,单击配置证书

  4. 配置证书面板,配置证书相关参数。

    直接选择云盾SSL证书中心,即可直接使用上面申请的免费证书了。

从零开发短视频电商 利用CDN加速OSS图片传输

参考https://help.aliyun.com/document_detail/127422.html?spm=5176.208361.1107621.33.7c3c57e0T9RpML

第三步 替换代码中UrlPrefix

由
"https://" + ossSetting.getBucketName() + "." + ossSetting.getEndPoint() + "/" + key
更改为 cdnEndPoint
"https://oss.laker.com" + "/" + key
示例为
https://oss.laker.com/001922faf1774c14ab7e73a5c648ef25-2021.png

第四步 购买相关资源包(建议、可选)

不购买资源包的话,会稍微有点儿贵哈,下面的是实时付费的价格,真实情况购买资源包价格会低些。

验证是否加速成功

从零开发短视频电商 利用CDN加速OSS图片传输

响应的资源Header头部就会包含X-Swift-SaveTime、X-Swift-CacheTime、Age这三个字段信息,很多同学不清楚它们都代表什么意思

X-Swift-SaveTime

X-Swift-SaveTime 代表开始在cdn上缓存的时间,如果字段值是2018-07-11 14:33:49,由于时间是GMT时间,折算成北京时间加8小时,也就是代表该资源在2018-07-11 22:33:49开始在CDN缓存。

X-Swift-CacheTime

X-Swift-CacheTime 是cdn默认缓存时间,以秒为单位,过了这个时间该缓存就失效了。比如86400意思是缓存24小时,超过了这个时间,该缓存就丢弃了,需要重新回源获取。

Age

Age 代表在cdn上已经缓存的时间,以秒为单位。如果值是200,那么就代表该资源已经在cdn缓存了200s,您可以结合X-Swift-SaveTime的值和自己的电脑时间比对下。

阿里CDN, 走Tengine, 返回的响应很友好,甚至告诉你是从内存命中的。

  • X-Cache:HIT TCP_MEM_HIT 表示命中缓存
  • X-Cache:MISS TCP_MISS 则表示未命中缓存
上一篇:UmiJS使用dav的几种方式


下一篇:Spring再接触 模拟Spring