OBS 静态网站托管 + 华为云 CDN:缓存与回源注意点

举报
yd_294423728 发表于 2026/10/24 11:40:26 2026/10/24
【摘要】 很多人把静态站丢进 OBS 再接 CDN,却遇到首页列出文件、改完还是旧页、私有桶回源 403。本文按华为云公开文档,整理托管开关对齐、缓存 TTL 分层、回源权限与发版刷新的实用注意点,方便对照自检。 一、为什么「托管 + CDN」经常一起配很多人把文档站、落地页、产品介绍页丢进对象存储,再用 CDN 加速访问。常见的情况是:桶开了静态网站托管,域名也绑了 CDN,但首页列出整桶文件、改完...

很多人把静态站丢进 OBS 再接 CDN,却遇到首页列出文件、改完还是旧页、私有桶回源 403。本文按华为云公开文档,整理托管开关对齐、缓存 TTL 分层、回源权限与发版刷新的实用注意点,方便对照自检。

一、为什么「托管 + CDN」经常一起配

很多人把文档站、落地页、产品介绍页丢进对象存储,再用 CDN 加速访问。常见的情况是:桶开了静态网站托管,域名也绑了 CDN,但首页列出整桶文件、改完 HTML 半天还是旧页面、或者私有桶回源 403。

华为云侧可以这样理解分工:

  • OBS 静态网站托管:把桶当成静态站点源站(默认首页、错误页等)。
  • 华为云 CDN:边缘缓存、自定义域名、HTTPS、回源到 OBS。

直接用 OBS 默认域名做网页预览已有限制(不少区域会走附件下载而不是在线渲染),所以生产更常见的是:自定义域名 + CDN → OBS。下面按「容易踩坑的注意点」整理一份实用清单,不写逐步截图教程。

参考文档(公开可核对):

二、先把源站语义对齐:托管开关要两边勾

1. OBS 侧:开启静态网站托管

在桶里配置默认首页(如 index.html)和错误页(如 error.html / 404.html)。托管打开后,访问「站点根路径」时,OBS 会按网站语义返回首页对象,而不是默认的对象列表。

对象本身也要可读:公有读桶,或私有桶配合 CDN 私有桶回源委托。只开托管、对象仍不可读,CDN 回源照样失败。

2. CDN 侧:源站同样勾选「静态网站托管」

很多人只在 OBS 开了托管,CDN 源站仍按「普通桶」回源。结果是访问加速域名根路径时,OBS 仍可能返回桶内对象列表——看起来像「网站被拖库展示」。

官方 FAQ 的处理很明确:

  1. OBS 开启静态网站托管;
  2. CDN 控制台 → 域名 → 回源 / 源站配置里,对 OBS 源站勾选 静态网站托管;
  3. 若节点仍缓存了旧的列表页响应,再对首页做一次 URL 刷新(谨慎用目录刷新,避免整目录打穿回源)。

两处开关缺一,就很容易复现「列出文件列表」这类现象。

三、缓存:按文件类型设 TTL,别一把 30 天

CDN 接入 OBS 桶域名时,常见默认是「所有文件缓存约 30 天」。对图片、字体、带 hash 的打包资源很合适;对入口 HTML / 频繁改的 JS 就不友好——发版后用户还在吃旧首页。

可以按官网「网站加速」建议分层(再按业务微调):

类型 建议过期时间 说明
动态后缀(.php .jsp .json 等) 0(不缓存) 静态站通常很少用到;有接口代理时更要小心
.html / .htm / .shtml / 入口 .js 约 7 天 或更短 发版频繁时可再缩短,并配合刷新
图片、字体、音视频、带内容哈希的静态资源 约 30 天 文件名带 hash 时可更长

优先级提醒:自定义规则优先级更高时,才会盖过默认「所有文件」规则。只改心里预期、不改控制台规则,缓存不会自己变。

我习惯把「会改文案的入口页」和「几乎不变的 /assets/」拆开设 TTL:入口短、资源长,比全局同一个过期时间更稳。

四、回源与权限:私有桶、列表权限、HTTPS

1. 公有桶 vs 私有桶回源

  • 公有桶:CDN 可匿名拉对象,简单,但桶可读面更大,生产要更谨慎。
  • 私有桶:配置 CDN 时选私有桶回源,系统侧常见会用 CDNAccessPrivateOBS 一类委托让 CDN 鉴权拉对象。委托删掉或权限被改坏,就会出现大面积回源 403。

私有桶还可以通过给委托加 拒绝 ListBucket 一类策略,进一步避免「通过加速域名列出对象」。具体策略以当前 IAM / CDN FAQ 为准。

2. 默认域名与自定义域名

OBS 默认域名做网页在线预览受限;自定义域名 + CDN(再配 HTTPS 证书)才是面向用户访问的常规路径。备案、服务范围(中国大陆 / 境外 / 全球)要和加速范围一致,否则调度与合规会对不上。

3. CORS 与防盗链(按需)

跨域拉资源时配 CORS;防盗刷流量时再加 Referer 防盗链。二者都不会随「开启托管」自动生效。

五、发版后怎么让用户看到新页面

缓存是双刃剑。更新 OBS 对象后,可以组合使用:

  1. 手动刷新:CDN 控制台对变更 URL 做 URL 刷新;首页、关键入口优先。
  2. 自动刷新:OBS 域名管理里可为加速域名配置自动刷新(对象创建 / 删除等事件 + 前缀/后缀过滤)。适合「上传即失效缓存」的流水线;注意多版本桶、跨租户等限制,以及委托权限要含查询域名与刷新缓存。
  3. 内容寻址文件名:构建产物带 hash(app.abc123.js),TTL 可以很长,发版主要刷新 index.html。

常见的情况是:只覆盖了 index.html 对象,却忘了刷新 CDN,于是「桶里已经是新文件,浏览器还是旧站」。先查 CDN 缓存再查本地浏览器缓存,排查会快很多。

六、一份可执行的检查表

  • [ ] OBS 已开静态网站托管,默认首页 / 错误页对象真实存在且可读
  • [ ] CDN 源站指向该桶,并已勾选「静态网站托管」
  • [ ] 访问加速域名根路径返回站点首页,而不是对象列表
  • [ ] HTML / 入口资源与长缓存静态资源 TTL 已分层
  • [ ] 私有桶场景下回源委托仍在,且未误删关键权限
  • [ ] HTTPS 证书有效;中国大陆加速域名备案状态正常
  • [ ] 发版流程包含「关键 URL 刷新」或「OBS 自动刷新」其一

七、小结

OBS 托管解决「按网站语义吐首页」,CDN 解决「边缘缓存与域名体验」。两边托管开关对齐、TTL 分层、私有桶委托与列表权限想清楚、发版带刷新,就能避开最常见几类坑。控制台文案若有改版,以当前文档为准。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。