OSS 回源功能-阿里云开发者社区

开发者社区> 技术课堂的搬运工~> 正文

OSS 回源功能

简介: 浅谈 OSS 回源功能,也称镜像回源,可以类比 Nginx 的 PCRE 满足一定条件下触发的 rewrite 功能,但是 OSS 的功能更加丰富。大致分为了两种主要功能,一种是 404 回源,另外是重定向回源。
+关注继续查看

作者:张医博

浅谈

OSS 回源功能,也称镜像回源,可以类比 Nginx 的 PCRE 满足一定条件下触发的 rewrite 功能,但是 OSS 的功能更加丰富。大致分为了两种主要功能,一种是 404 回源,另外是重定向回源。

使用的场景,一般是数据迁移、主备 OSS、CDN 结合 OSS、等多个场景。

功能说明

404

当客户请求到 OSS 获取资源时,如果 OSS 咨询不存在,那么会根据客户配置的镜像回源地址去拉去对应的资源,如果真正的源站有数据就会响应 OSS 200 ,OSS 会将文件一同存储到本地,并且透传给客户端 200 的状态码。

在这个过程中,如果 OSS 回源没有回去到资源,源站响应了 404 ,那么 OSS 也直接将 404 透传给用户。

如果 OSS 回源获取资源失败,源站返回了一个非 200 404 的状态码,比如 502,那 OSS 会记录 424 ,然后透传给源站的状态码 502 给客户端。

重定向

回源另外一个功能就是重定向,重定向,分为 301 、302、307。常用的就是 302 301,配置重定向功能后,客户端请求到 bucket A 后,会直接 302 301 到用户配置的 bucket B,客户端直接根据 301 302 follow 到目的 bucket B。

配置功能

image.png

这里不会给大家说全部的功能,因为详细使用官网有,我们着重说下标红的位置。

  • 文件前缀:如果勾选了文件前缀,择访问出现 404 后,只会针对匹配到的 OSS 前缀触发镜像回源,否则不会触发。
  • 回源参数:如果是 CDN 回源时会携带很多参数,想要保留这些参数透传到源站,可以开启此参数。
  • 允许 header:如果配置了允许 所有header ,默认将客户端请求过来的 header 全部透传给源站。
  • 精致 header :可以自定义哪些 header 是不透传回源的。
  • 设置:触发回源后,可以自定义一些请求头透传给源站。

案例介绍

一、配置了镜像回源但是响应 404

  • 首先固定真正的源站访问同样的 URL 测试是否 200 ,只有源站响应了 200 的情况 OSS 回原才能获取到资源。
  • 看是否配置了透传所有 header 头选项,如果配置了该选项需要同时配置禁止 host 头透传回去,否则会出现回源时 404 的问题。因为镜像回源时会携带当前 bucket host 回源,所以目标源站肯定也响应 404 。

二、配置了镜像回源但是响应 502

  • 出现这种问题,都是客户源站响应超时导致,可以先固定源站的 URL 测试一下。
  • 分析对应时间点源站 error log 或者 access log 是否有 502 的情况,看下源站的网络链路负载等。

三、镜像回源的源站和访问的域名一致

  • 访问 www.a.com 资源 404 回源到 B.oss-cn-beijing.aliyuncs.com ,B bucket 上设置回源到 www.a.com ,这种情况是不可以的,会造成死循环的问题。
  • 访问 A.oss-cn-beijing.aliyuncs.com 资源 404 回源到 B.oss-cn-beijing.aliyuncs.com ,B bucket 设置的源站是 A bucket 也不行。

四、镜像回源报错 "Error status: 0 from mirror host ,should return 200 ok"

image.png

出现类似报错就是 OSS 在触发镜像回用户原站拉资源时,源站没有返回 200 的内容,而是返回了其他非 200 的状态码,导致拉取资源失败。
这种场景,用户端只要固定源站测试以下就可以知道问题。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10051 0
如何设置对象存储OSS静态网站托管功能?
今天为大家介绍一下如何设置OSS的默认页面。OSS的静态网站托管功能,主要是允许客户将一个.html的静态文件上传到bucket中作为bucket外网域名访问的一个特定页面。 接下来,我们登录控制台给大家详细介绍一下设置方法。
2910 0
【OSS最佳实践】浅谈OSS跨域功能
本文介绍浏览器同源策略的基本概念、OSS支持的跨域方式cors介绍、OSS跨域的基本配置及OSS跨域报错如何排查
10678 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13865 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
11815 0
配置审计(Config)配合开启OSS防盗链功能
本文作者:紫极zj 本文将主要介绍利用【配置审计】功能,如何快速发现企业上云过程中,针对未配置防盗链的 OSS Bucket 定位及修复案例。
9838 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7358 0
278
文章
0
问答
来源圈子
更多
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载