OSS 解决方案篇-OSS 结合全站加速使用

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 全站加速(DCDN) 与 OSS 是常见的站点动静分离的方式,可以实现将静态资源存储在 OSS 上,并通过 DCDN 加速 OSS 实现静态资源的访问加速效果。如果是动态业务,可以通过最短路由上传回传;

功能描述

首先阐述如果能解决动静态分析的场景

DCDN 支持动态的文件加速规则,用户可以配置配置哪些是静态文件需要缓存,哪些是动态文件不需要缓存。

开启动态加速

  • 开启:可自定义动静态资源加速规则,静态内容使用边缘缓存,动态内容采用最优路由回源,支持三种静态文件匹配方式(URI、后缀、路径)
  • 关闭:无动态内容加速效果,仅保留静态边缘缓存功能

image.png

配置方法

创建 DCDN 域名时,选择 OSS 域名作为原站,在下来框里面可以自动检索出客户的 OSS bucket

回源端口建议使用 443 回源避免被劫持
image.png

回源规则

这个规则默认不用更改,但当原站如果是私有 bucket 权限,客户端不想每次自己计算 OSS signature 签名,那可以把 “私有bucket回源” 功能开启,这样用户不用自己计算签名,通过 DCDN 来自动算签;

image.png

缓存规则配置

用户如果之前配置来静态路由规则后,在缓存规则里面可以配置对应的缓存时间,那动态的文件就直接回源,静态的走本地 cache

image.png

跨域配置

当 DCDN 域名回源到 OSS 时会触发跨域,因为 DCDN 和 OSS是两个完全不同的主站,所以需要在 OSS 上配置跨域;

image.png

image.png

如果客户端请求 DCDN 也是两个不同的主站域名那么在 DCDN 上也要配置;
Access-Control-Allow-Origin
Access-Control-Allow-Headers
Access-Control-Allow-Methods

image.png

开启 OSS 自动刷新功能

用户如果更新 OSS 静态文件后,希望 DCDN 将同名的旧文件从缓存中清理掉,可以开启自动刷新功能。

image.png

FQA

使用 DCDN 和 OSS 后静态文件为强制下载

由于OSS的默认策略在访问3级域名时,会给文件添加attachment属性,导致文件为强制下载。

需要修改 DCDN 的回源HOST,配置为加速域名而不是Bucket域名(即不是为aliyuncs.com结尾的域名,此域名为OSS的默认域名);

访问 OSS 静态文件大小和 DCDN 缓存文件大小不一致

OSS 通过 putObject 等上传方式都是会在 response 头中记录content-length 和 content-MD5 的信息返回给客户端,用户可以根据该信息确定本地下载得到的文件是否与 OSS 服务器端存储的数据是否一致。

image.png

但使用 DCDN 加速 OSS 出现文件大小和 OSS 不一致时可以从一下方面进行排查:

  • 获取 DCDN 上的历史缓存。由于 OSS 上的文件更新而 DCDN 上仍然缓存着历史的旧数据导致的该问题,可以通过刷新 DCDN 缓存解决。
  • DCDN 的智能压缩功能。 DCDN 会对满足特定条件的文件自动做 gzip压缩,当客户端发送的 Request 头有 Accept-Encoding : gzip ,即表示客户端支持 gzip 压缩并且满足CDN智能压缩就会进行压缩,而压缩后就会导致该文件更改为 chunked 编码,将无法获取得到 content-length 。
  • DCDN 的页面优化功能。 DCDN 针对于 html 文件提供了 trim 的功能,即 DCDN 在开启页面优化功能后可以帮助用户自动去掉 html 页面中的空格以及注释,这样可以减少下行流量。但是这就会导致客户端接收到的 content-length 或者 content-MD5 发生变化。
  • HTTP 劫持问题。当如果客户端到 DCDN 的边缘节点或者 DCDN 父层节点回源到源站使用 HTTP 协议时数据传输是非加密的,因此是有可能出现在网络传输的过程中包内容被篡改的情况。这种情况就会导致客户端接收与 OSS 存储内容不一致。该问题可以通过修改为 HTTPS 协议规避该问题。
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
对象存储
阿里云对象存储oss+picgo+typora实现步骤及无法上传图片解决方案
阿里云对象存储oss+picgo+typora实现步骤及无法上传图片解决方案
417 0
阿里云对象存储oss+picgo+typora实现步骤及无法上传图片解决方案
|
6月前
|
开发工具 对象存储 C++
UE4 x 阿里云OSS 配置问题和解决方案
在OSS配置到UE4时遇到一些问题,已解决,分享一些解决方案。
1195 0
|
存储 容灾 Cloud Native
利用阿里云对象存储OSS-RC实现经济实惠的云备份容灾解决方案
本文主要分享《如何利用阿里云对象存储OSS-RC实现经济实惠的云备份容灾解决方案》,帮助中小企业解决因难以负担备份容灾支出而遭受到业务中断威胁的问题。
利用阿里云对象存储OSS-RC实现经济实惠的云备份容灾解决方案
|
分布式计算 Hadoop Java
Hadoop/Spark 访问 OSS 加速 | 学习笔记
快速学习Hadoop/Spark 访问 OSS 加速。
427 0
|
边缘计算 缓存 对象存储
阿里云OSS传输加速和CDN有什么区别?
阿里云对象存储OSS传输加速和阿里云CDN的区别
|
弹性计算 Linux Go
阿里云ecs服务器之间大文件迁移利用阿里云oss通过内网传输解决方案
阿里云ecs服务器之间大文件迁移利用阿里云oss通过内网传输解决方案
|
存储 对象存储 CDN
【对象存储OSS/网络分发加速CDN】使用OSS后,如何实现流量访问限制或请求次数的限制
描述使用对象存储OSS后,如何实现流量访问限制或请求次数的限制
2044 2
|
对象存储
网站引用阿里云oss里面的远程字体图标不显示解决方案
网站引用阿里云oss里面的远程字体图标不显示解决方案
351 0
网站引用阿里云oss里面的远程字体图标不显示解决方案
|
SQL 缓存 分布式计算
Spark 对 OSS 上的 ORC 数据进行查询加速 | 学习笔记
快速学习 Spark 对 OSS 上的 ORC 数据进行查询加速。
281 0
Spark 对 OSS 上的 ORC 数据进行查询加速 | 学习笔记
|
存储 SQL 分布式计算
Spar k对 OSS 上的 Parquet 数据进行查询加速 | 学习笔记
快速学习Spar k对 OSS 上的 Parquet 数据进行查询加速。
210 0