华为云 OBS + CDN 搭建静态网站的完整实践

举报
yd_295232380 发表于 2026/10/26 09:14:43 2026/10/26
【摘要】 随着前后端分离和 Jamstack 架构的普及,越来越多的官网、文档站和运营活动页不再需要独立的 Web 服务器,而是直接把构建产物放到对象存储,再通过 CDN 分发。本文以华为云对象存储服务 OBS 和内容分发网络 CDN 为例,梳理一条从桶配置、静态网站托管、CDN 回源到缓存与 HTTPS 的完整落地路径,并给出实际运维中容易踩坑的几个细节。一、整体架构与选型静态站点由三部分组成:源站...

随着前后端分离和 Jamstack 架构的普及,越来越多的官网、文档站和运营活动页不再需要独立的 Web 服务器,而是直接把构建产物放到对象存储,再通过 CDN 分发。本文以华为云对象存储服务 OBS 和内容分发网络 CDN 为例,梳理一条从桶配置、静态网站托管、CDN 回源到缓存与 HTTPS 的完整落地路径,并给出实际运维中容易踩坑的几个细节。

一、整体架构与选型
静态站点由三部分组成:源站、分发网络和域名解析。源站使用 OBS 标准存储桶,存放 HTML、CSS、JavaScript、图片等构建产物;CDN 通过回源域名从 OBS 拉取内容并缓存到边缘节点;用户访问自定义域名,经 CNAME 解析到 CDN 加速域名。相比自建 Nginx,这套方案不需要维护服务器和证书轮换,容量按量计费,天然适合流量波动大的场景。

二、创建桶与上传构建产物
在 OBS 控制台创建桶时,桶名全局唯一,区域建议选择离主要用户最近的区域,例如华北-北京四或华东-上海一。权限先设为私有,后续通过 CDN 回源鉴权或桶策略放开,避免桶被公开列出。上传时保持目录结构不变,把 index.html 放在根目录,静态资源按 assets、images 等目录组织。建议开启多版本控制,误覆盖时可以快速回滚;同时为桶配置生命周期规则,把旧版本和临时文件定期清理,控制存储成本。

三、开启静态网站托管
OBS 的静态网站托管需要单独配置:指定默认首页为 index.html,默认错误文档为 404.html,然后保存。配置完成后,控制台会给出一个网站托管域名,形如 bucketname.obs-website.region.myhuaweicloud.com。这个域名只用于验证,正式访问仍然走 CDN。需要注意,静态网站托管模式下不支持直接列出对象,目录访问必须能命中默认首页,因此前端路由如果使用 history 模式,要把 404 页面配置成返回 index.html,或者改用 hash 路由。

四、配置 CDN 与回源
在 CDN 控制台添加加速域名,业务类型选择静态网站加速,源站类型选择 OBS 桶,选中刚创建的桶并指定回源域名。缓存策略按文件类型区分:HTML 设置较短的缓存时间,例如 60 秒,保证发版后能快速生效;CSS、JS、图片等带内容指纹的资源可以设置 7 天甚至 30 天。建议开启智能压缩和 HTTP/2,减少传输体积。回源鉴权方面,如果桶保持私有,需要给 CDN 服务授权访问 OBS,或在桶策略中只允许 CDN 回源地址访问,避免源站被直接刷流量。

五、HTTPS 与域名解析
CDN 支持上传自有证书或申请免费证书,配置好后开启强制跳转 HTTPS。域名解析处添加一条 CNAME 记录,把 www.example.com 指向 CDN 提供的加速域名,等待解析生效后用 curl -I 检查返回头中的 x-cache 字段,确认命中情况。首次访问通常是 MISS,第二次访问应变为 HIT,说明缓存链路正常。

六、发版与缓存刷新
静态站点发版的核心问题是缓存一致性。推荐的做法是资源文件名带哈希,HTML 引用新哈希文件,发布时只上传新增资源并覆盖 index.html,这样大部分缓存自然失效,不需要全量刷新。如果确实需要立即生效,可以在 CDN 控制台提交 URL 刷新或目录刷新,但要注意配额限制,不要把刷新当成常规发布手段。

七、监控与成本
在云监控服务 CES 中为 CDN 配置带宽、流量、命中率和 4xx/5xx 错误率告警;OBS 侧关注存储用量和请求次数。成本上,静态资源以流量费为主,建议开启 CDN 的用量封顶,防止异常盗刷。对于访问量很小的内部文档站,可以直接使用 OBS 网站托管域名,不必上 CDN,结构更简单。

八、总结
OBS 加 CDN 的组合把静态网站的运维成本降到了很低,但前提是把缓存策略、回源鉴权和发版流程设计清楚。实际落地时,先保证源站权限最小化,再逐步调优缓存时间和压缩策略,最后用监控和告警兜底,才能既快又稳。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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